मेरे पास जैसे कॉलम के साथ एक तालिका CommentsTable
है।कॉमा से अलग मूल्य के रूप में एक कॉलम में एकाधिक कॉलम मान
सभी टिप्पणियां कॉलम VARCHAR (200)
हैं, डिफ़ॉल्ट रूप से सभी कॉलम NULL
भी हैं।
CommentId CommentA CommentB CommentC CommentD CommentE
---------------------------------------------------------------------
12345 NULL C 001 C 002 NULL C 003
45678 C 005 NULL NULL C 007 NULL
67890 C 010 NULL C 011 C 012 NULL
36912 C 021 C 023 C 024 C 025 C 026
मैं शून्य मान बचने की जरूरत है और शेष मानों comma
साथ CONCATENATE हैं:
डेटा की तरह दिखता है।
तो, उम्मीद उत्पादन की तरह:
CommentId CommetDetails
-------------------------------
12345 C 001, C 002, C 003
45678 C 005, C 007
67890 C 010, C 011, C 012
36912 C 021, C 023, C 024, C 025, C 026
मैं साधारण क्वेरी के साथ करने की कोशिश की:
SELECT CommentId, ISNULL(CommentA, '') + ', ' + ISNULL(CommentB, '') + ', ' +
ISNULL(CommentC, '') + ', ' + ISNULL(CommentD, '') + ', ' +
ISNULL(CommentE, '') [CommentDetails]
FROM CommentsTable
WHERE ...... --Some conditions
लेकिन अवांछित comma
हुआ कर रहे हैं, तो IIF
SELECT CommentId,
IIF(ISNULL(CommentA, '') <> '', (CommentA + ', '), '') +
IIF(ISNULL(CommentB, '') <> '', (CommentB + ', '), '') +
IIF(ISNULL(CommentC, '') <> '', (CommentC + ', '), '') +
IIF(ISNULL(CommentD, '') <> '', (CommentD + ', '), '') +
ISNULL(CommentE, '') [CommentDetails]
FROM CommentsTable
WHERE ...... --Some conditions
लेकिन यहाँ जोड़ा भी, comma
अंतिम में हुआ कुछ मामलों के लिए स्थिति (यदि CommentD, CommetE
NULL
हैं।
क्या सभी मामलों के लिए हल करने का कोई तरीका है।
आपको अपने आखिरी उदाहरण के साथ एसक्यूएल फिड स्क्रिप्ट अपडेट करें, ठीक उसी स्थिति में जहां आप अंत में एक अवांछित कॉमा है। –