मेरे पास एक तालिका में पंक्तियों का एक समूह है जिसमें आईडी है। मैं कई स्तंभों के साथ पंक्तियों में इसे फ़्लैट करने की कोशिश कर रहा हूं। मैं लगभग निश्चित हूं कि मैंने इसे एक सीटीई और शायद विभाजन के साथ किया है।कॉलम में पंक्तियों को फ़्लैट करने की कोशिश कर रहे हैं
मैंने डुप्लिकेट डेटा को हटाने के लिए सीटीई का उपयोग किया है और मैंने सोचा कि मैंने ऐसा कुछ किया है जो मैं यहां पूरा करने की कोशिश कर रहा हूं। मैं व्यावहारिक समाधान (नीचे सूचीबद्ध) के साथ आने में सक्षम था लेकिन अभी भी एक और अधिक सुरुचिपूर्ण समाधान उपलब्ध होना चाहिए।
CREATE TABLE #MyTable (RowID int , field VARCHAR(10), value VARCHAR(10))
INSERT INTO #MyTable (RowID, field, value) VALUES (1, 'first', 'neil')
INSERT INTO #MyTable (RowID, field, value) VALUES (2, 'first', 'bob' )
INSERT INTO #MyTable (RowID, field, value) VALUES (3, 'first', 'tom' )
INSERT INTO #MyTable (RowID, field, value) VALUES (1, 'last', 'young')
INSERT INTO #MyTable (RowID, field, value) VALUES (2, 'last', 'dylan')
INSERT INTO #MyTable (RowID, field, value) VALUES (3, 'last', 'petty')
SELECT * FROM #mytable
CTE/विभाजन के साथ यह पूरा करने के --trying:
SELECT rowid,
[first] = (Select value FROM #mytable where field = 'first' and rowid = t.rowid),
[last] = (Select value FROM #mytable where field = 'last' and rowid = t.rowid)
FROM #mytable t
GROUP BY rowid
बहुत बहुत धन्यवाद। पिवट बिल्कुल वही है जो मैं ढूंढ रहा था। मैंने भी कोशिश की थी लेकिन अधिकतम() का उपयोग नहीं कर रहा था। एक बार फिर धन्यवाद। – boone
@boone आपका स्वागत है !! :) – Taryn
बहुत उपयोगी सुविधा, धन्यवाद – AlexFoxGill