选择具有相同字段的所有记录与另一个字段完全相同的记录

时间:2013-10-30 01:06:28

标签: sql sql-server-2008 select case

有没有办法可以在不使用子查询的情况下引用我在select语句中创建的列?

SELECT TVSeason.tvSeasonID, UserHasWatchedTVSeason.*, 
CASE 
    WHEN userhaswatchedtvseason.tvSeasonID IS NULL THEN 'No'
    ELSE 'Yes'
END as watched
FROM TVSeason 
LEFT JOIN UserHasWatchedTVSeason
    ON TVSeason.tvSeasonID = UserHasWatchedTVSeason.tvSeasonID
WHERE watched = 'No'

“监视”列仅存在于查询的选择部分中。显然我试过上面的,没有找到专栏。我想知道是否还有另一种方式我应该这样做 - 我试图避免使用额外的子查询混乱查询。

1 个答案:

答案 0 :(得分:1)

这是一个范围问题。通过SQL评估查询的方式,它不知道您的列是否存在。

您需要按照建议执行操作并创建子查询以将派生列重新用作变量,或者您需要将派生列表示的逻辑复制粘贴到案例陈述中。