1
SELECT TOP 1000 [Value]                       
FROM [OnlineQnres].[dbo].[tmp_DataSets]
WHERE [VariableID] in ('1')
UNION ALL
SELECT TOP 1000 [Value]
FROM [OnlineQnres].[dbo].[tmp_oDataSets]
WHERE [VariableID] in ('4')

より更新された詳細を提供する

こんにちは、UNION ALL を使用して上記の選択クエリを作成しました。tmp_datasets テーブルには、Value および VariableID という列があります。2 つの別々の列を作成し、variableID が 1 の場合は val1、variableID が 4 の場合は val2 と名前を付ける必要があります。 2 9 月の列に出力します。上記のように、この値の列を 2 つの列に分けるにはどうすればよいですか。

私は2つの列を持っています

  • VALUE値を持つTEST56,TEST57,230,245
  • VARIABLEID = 1 および 4

  • TEST56 AND TEST57 は variableid == 1 に分類されます

  • 230 と 245 は variableid == 4 の下にあります

上記の例に基づいて、変数 ID == 1 の場合は val1、変数 ID == 4 の場合は val2 という 2 つの列を持つビューを作成します。

したがって、次のようになります

  • val1 = test56 と test57 を表示する必要があります
  • val2 = 230 と 245 を表示する必要があります

前もって感謝します

4

1 に答える 1

1

いくつかのケースステートメントは、私があなたが望むと思うことをするはずです:

SELECT TOP 1000
[Variable] 
CASE [VariableID]
  WHEN 1 THEN 1
  ELSE 0
END AS Val1,     
CASE [VariableID]
  WHEN 4 THEN 1
  ELSE 0
END AS Val2                       
FROM [OnlineQnres].[dbo].[tmp_DataSets]
WHERE [VariableID] = 1 or [VariableID] = 4

SQLFiddle リンク: http://sqlfiddle.com/#!6/825f2/8/0

于 2013-08-21T00:58:46.793 に答える