My Required Output should be like this Je dois concaténer les sous-pages d'un enregistrement à plusieurs valeurs avec séparateur et si la sous-valeur moyenne est nulle, je dois concaténer avec Just separator. J'ai écrit le code suivant.SQL Server Nécessité de gérer les valeurs NULL dans la fonction Stuff
SELECT B.ACCOUNT_NUMBER ,B.co_code,(select CASE WHEN OTHER_OFFICER IS NOT NULL AND 0 < (SELECT COUNT(C.ACCOUNT_NUMBER) FROM EFZ_ACCOUNT_DETAILS C
where C.ACCOUNT_NUMBER = A.ACCOUNT_NUMBER AND C.OTHER_OFFICER IS NULL) THEN ISNULL(B.OTHER_OFFICER +']',']')
ELSE NULL
END
from EFZ_ACCOUNT_DETAILS A
where A.ACCOUNT_NUMBER = b.ACCOUNT_NUMBER
FOR XML PATH(''))AS ACC_DEB_LIMIT
FROM EFZ_ACCOUNT_DETAILS b
GROUP BY ACCOUNT_NUMBER,co_code
Cela fonctionne, mais même si tous les subvalues d'un enregistrement à plusieurs valeurs sont nulles, il est concaténer avec le séparateur et la sortie est à venir comme celui-ci
J'ai essayé cette logique aussi , il me donne le même résultat
SELECT ACCOUNT_NUMBER ,co_code, STUFF((SELECT isnull(']'+ OTHER_OFFICER,']') FROM EFZ_ACCOUNT_DETAILS a
WHERE b.ACCOUNT_NUMBER = a.ACCOUNT_NUMBER FOR XML PATH('')),1 ,1, '') alt_account_type
FROM EFZ_ACCOUNT_DETAILS b
GROUP BY ACCOUNT_NUMBER,co_code;
format bail mieux le code – berserck
SELECT ACCOUNT_NUMBER, co_code, STUFF ((SELECT isnull (']' + OTHER_OFFICER, ']') DE EFZ_ACCOUNT_DETAILS WHERE b.ACCOUNT_NUMBER = a.ACCOUNT_NUMBER FOR XML CHEMIN ('')), 1, 1, '') alt_account_type FROM EFZ_ACCOUNT_DETAILS b GROUP BY ACCOUNT_NUMBER, co_code; Cela me donne aussi la même sortie –
Vous utilisez ISNULL Wrong, Quand vous faites isnull (']' + OTHER_OFFICER, ']') et OTHER_OFFICER est NULL, vous aurez ISNULL (']' + NULL, ']') et ']' + NULL n'est pas nul. Essayez de faire ISNULL (OTHER_OFFICER, '') + ']' – berserck