5
मेरे पास दो मानों के साथ एक साधारण कॉलम तालिका है। मैं इसे चुनता हूं और अलग संशोधक के साथ मूल्यों को जोड़ता हूं लेकिन यह केवल नवीनतम मूल्य प्राप्त करता है। क्या मैं DISTINCT के साथ गलत धारणा में हूं?अलग-अलग कॉलम मानों को अलग करने के साथ अजीब परिणाम
DECLARE @table TABLE(Id int)
DECLARE @result VARCHAR(MAX) = ''
INSERT @table VALUES(1), (2)
SELECT
@result = @result + CAST(Id AS VARCHAR(10)) + ','
FROM
@table
SELECT @result --— output: 1,2,
-------same With distinct
SET @result = ''
SELECT DISTINCT @result = @result
+ CAST(Id AS VARCHAR(10)) + ','
FROM @table
SELECT @result --— expected output: 1,2, actual output: 2, why?
यह वास्तव में दिलचस्प है:
में परिणामस्वरूप। मैंने इसे कभी नहीं देखा है, लेकिन यह 'ग्रुप बाय' बनाम 'DISTINCT' में एक अंतर प्रतीत होता है। निष्पादन योजना उस क्रम को बदलती है जिसमें यह चर वैल्यू की गणना करता है ... – ZLK
धन्यवाद, मैं समेकित ऑपरेटर + को कुल कार्य के रूप में कार्य करता हूं लेकिन मैक्स() के रूप में अलग-अलग कार्य के साथ ऑपरेटर को समेकित क्यों करता हूं? – Mohammadreza
आपकी पुनर्लेख अभी भी ऐसे व्यवहार पर निर्भर करती है जो निष्पादन योजना निर्भर है और इसकी गारंटी नहीं है। एकमात्र सुरक्षित तरीका कुछ अन्य विधि जैसे 'xml path' का उपयोग करना है। –