【发布时间】:2015-01-19 16:28:07
【问题描述】:
这个 tblName 表有 4 列 {Date}、{Status}、{Meal}、{Type} 我想在侧面子查询中使用条件来显示在不同的列中
Select Date, Status, Meal
(Select Type as Special
from tblName
where Type In ('SSS','MMM')),
(Select Type as Normal
from tblName
where Type Not IN ('SSS','MMM'))
From tblName
我收到错误消息
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
【问题讨论】:
-
你能给我们提供一个 sqlfiddle 例子和想要的结果吗?针对您的问题:在您的桌子上运行
Select Type as Special from tblName where Type In ('SSS','MMM')和Select Type as Normal from tblName where Type Not IN ('SSS','MMM')并查看返回的结果列表,当您在select from列表中使用时,该列表是不允许的。 -
我会尽力解释,抱歉这有点复杂,因为我是新手。我想要的结果是新名称中的新表将列“类型”分隔为不同结果中的特殊和正常。有什么办法吗?
-
在“类型”列中有许多不同的值,我想创建一个新列,其中只有“SSS”和“MMM”值以及不在“SSS”和“MMM”中的其他值将存储在“正常”列中
-
Type是否与Date、Status和Meal相等的行不同?请考虑一个最小的 sqlfiddle 示例,它在这里为我们节省了很多 cmets!