访问T-SQL中的别名字段

Chr*_*ris 0 sql t-sql

在查询中,我使用CASE表达式创建了许多字段.

我需要稍后在查询中引用这些字段,但似乎我无法使用其别名访问该字段 - CASE每次我想要引用其值时我都必须重复该表达式.

有没有一种简单的方法来访问这些字段?

Ada*_*Dev 5

你可以使用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)