【发布时间】:2017-01-18 21:32:18
【问题描述】:
我正在尝试在 OR 子句中使用列别名,但我不断收到错误消息:“列名 'TEAM NAME' 无效”。我已经看到有关在 WHERE 子句中使用别名的线程,但我不确定 OR 是否可行。 这是我正在使用的:
[TEAM NAME] = CASE WHEN MAX(L.City) IN ('RY','BR') THEN 'Team 1'
WHEN MAX(L.City) IN ('JS','ND') THEN 'Team 2'
WHEN MAX(L.City) IN ('QV','VE') THEN 'Team 3'
WHEN MAX(L.City) IN ('FB','RX') THEN 'Team 4'
ELSE '-' END,
这是我的 OR 子句
AND (U.Player IN ('Tom Thumb','Wallace Gromit') OR [Team Name] <> '-')
【问题讨论】:
-
如果你想使用别名,我认为你最好的选择是将你的主要当前查询包装在一个子查询中,并将该部分放在外面。或者,在不使用别名的情况下将该行夹在 having 子句中。例如
having u.player in ('Tom Thumb','Wallace Gromit') or max(L.city) in ('ry','br','js','nd','qv','ve','fb','rx')
标签: sql sql-server alias