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个单独的列,并将它们命名为val1 for variableID为1,将val2命名为variableID为4.如果我使用UNION ALL它可以工作,它创建2000条记录,前1000条作为val1记录,接下来1000作为val2记录,但不分开分为2个sep列。如何在2个单独的列中分隔此值列,如上所述。
我有2列
VALUE
,其值为TEST56,TEST57,230,245
VARIABLEID = 1和4
TEST56和TEST57属于variableid == 1
基于上面这个例子,我想创建一个视图,其中我有2列,如果变量= = 1则称为val1,如果变量id == 4则为val2。
所以看起来应该是这样的
提前致谢
答案 0 :(得分: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