2017-03-23 5 views
0

私はSQL Serverの新機能です。私はこのためにストアドプロシージャを記述します:SQL Server FORループ

enter image description here

私がテーブルにある行数を知りません。私はXZ列をグループ化し、Y列のテキストはXZ列に属していました。

私は2つのループでこれを行うことができます。私はSQL Serverで使うことができる短い方法はありますか?

答えて

1

使用STUFF String関数:

CREATE TABLE #table(X VARCHAR(10), Y VARCHAR(10) , name VARCHAR(10)) 
INSERT INTO #table(X , name , Y) 
SELECT 'a','as','b' UNION ALL 
SELECT 'a','ad','b' UNION ALL 
SELECT 'a','de','b' UNION ALL 
SELECT 'b','aa','c' UNION ALL 
SELECT 'b','ss','c' UNION ALL 
SELECT 'e','ew','r' UNION ALL 
SELECT 'e','w','r' UNION ALL 
SELECT 'e','ss','r' UNION ALL 
SELECT 'e','dd','r' 

SELECT T1.X X , STUFF((SELECT ' ' + name FROM #table T2 WHERE T1.X = T2.X 
AND T1.Y = T2.Y FOR XML PATH('')) ,1,2,'') Y , T1.Y Z 
FROM #table T1 
GROUP BY X , Y 
+0

おかげで、これは私が考えるsorthest方法です:) –