2017-08-18 6 views
0

現在、SQLビューでいくつかのクエリをクリーンアップしています。whileループを使用してT-SQLで表示する列を追加する

は1つのビュー内の列の数はので、私はwhileループにこれを入れたいのですが

SUM(CASE WHEN Navn = '000100' THEN Vaerdi ELSE 0 END) AS '000100', 
SUM(CASE WHEN Navn = '000110' THEN Vaerdi ELSE 0 END) AS '000110', 
SUM(CASE WHEN Navn = '000115' THEN Vaerdi ELSE 0 END) AS '000115', 

リストが経つとかなり広範囲になり、次の構文を使用して生成されます。

WHILE (i in ('000100','000110','000115') 
SUM(CASE WHEN Navn = i THEN Vaerdi ELSE 0 END) AS i, 
END 

これを実現する方法上の任意の提案のようなもの?

+0

を達成することができた私はそう –

答えて

0

解決策を見つけました! PIVOT機能を使用して

は、私は私の目標

WITH dataTable AS (
     SELECT 
     * 
     FROM dbo.table 
     WHERE Navn IN ('000100', '000110') 
    ) 
SELECT * 
    FROM dataTable 
PIVOT 
     (
      SUM(Vaerdi) 
FOR[Navn] IN (['000100],[000110]) 
) 
    AS p 
+0

ノー、loop_ながら_using、あなたの質問が制限されていると思うとは思いませんか? – Sami

関連する問題