在查询中,我使用CASE表达式创建了许多字段.
我需要稍后在查询中引用这些字段,但似乎我无法使用其别名访问该字段 - CASE每次我想要引用其值时我都必须重复该表达式.
有没有一种简单的方法来访问这些字段?
你可以使用CTE(假设SQL Server 2005+),就像这个非常基本的例子:
DECLARE @Val INT
SET @Val = 1
;WITH CTEExample AS
(
SELECT CASE @Val WHEN 1 THEN 'A' ELSE 'B' END AS MyCaseField1
)
SELECT * FROM CTEExample WHERE MyCaseField1 = 'A'
Run Code Online (Sandbox Code Playgroud)