-2

有没有一种方法可以在不使用子查询的情况下引用我在 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'

'watched' 列仅存在于查询的选择部分。显然我尝试了上述方法,找不到列。我想知道是否还有另一种方法我应该这样做 - 我试图避免使用额外的子查询使查询混乱。

4

1 回答 1

1

这是范围的问题。使用 SQL 评估查询的方式,它还不知道您的列是否存在。

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

于 2013-10-30T02:48:12.340 回答