【发布时间】:2016-04-26 11:05:48
【问题描述】:
我有一个查询,我在 SELECT 中使用 CASE 语句来分配“团队”列的值。然后我希望能够使用我在 WHERE 子句中分配的值。有关示例,请参阅下面的示例查询。
在我的简化示例中,我知道我可以在 WHERE 子句中使用 s.id 值并获得所需的结果,但是我正在处理一个更复杂的场景,其中实际使用字符串会有所帮助我在 WHERE 子句中赋值。
这可能吗?我正在使用 MS SQL Server 2012。
在我进行的搜索中,无论哪种方式,我都没有找到任何确定的信息。提前致谢!
SELECT s.tickedNum, s.ticketSummary,'Team' =
CASE
WHEN s.id in (100) THEN 'Team A'
WHEN s.id in (200) THEN 'Team B'
WHEN s.id in (300) THEN 'Team C'
ELSE 'Unknown'
END,
FROM supportTable s
WHERE
'Team' = 'Team B'
【问题讨论】:
-
不能这样做。您需要一个子查询或 CTE。您不能在其对应的
where子句中使用在select中定义的别名。 -
如果你真的想也可以使用交叉申请
标签: sql sql-server