sql - पंक्तियों से अल्पविराम वाला स्ट्रिंग प्राप्त करें




sql-server tsql (2)

MS Sql Server में क्वेरी को मेरी पंक्तियों को एक स्ट्रिंग में समाहित करने के लिए क्या होगा, अल्पविराम द्वारा सीमांकित ( जैसे नीचे दिखाया गया है )


मान लें कि आपका कॉलम नाम NAME और तालिका नाम MYTABLE तो आप निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

DECLARE @strTemp VARCHAR(MAX)

SET @strTemp = ''

SELECT @strTemp  = @strTemp + ISNULL(NAME,'') + ','
FROM MYTABLE

--Remove last comma
SET @strTemp = SUBSTRING(@strTemp ,1,LEN(@strTemp ) -1)

--Get Result
SELECT @strTemp 

आप निम्न का उपयोग करके अशक्त रिकॉर्ड्स को फ़िल्टर कर सकते हैं

SELECT @strTemp  = @strTemp + NAME + ','
FROM MYTABLE
WHERE NAME IS NOT NULL

STUFF और FOR XML उपयोग करें:

नमूना तालिका बनाएं और आबाद करें ( कृपया अपने भविष्य के प्रश्नों में हमें इस चरण को बचाएं)

DECLARE @T AS TABLE
(
    Name varchar(10)
)

INSERT INTO @T VALUES
('John'),
('Vicky'),
('Sham'),
('Anjli'),
('Manish')

पूछताछ:

SELECT STUFF((
    SELECT ',' + Name
    FROM @T
    FOR XML PATH('')
), 1, 1, '') As [output];

परिणाम:

output
John,Vicky,Sham,Anjli,Manish






sql-server-2012