我想要这样做:
SELECT (CASE WHEN ...) AS FieldA,FieldA + 20 AS FieldB FROM Tbl
假设通过“…”我替换了一个长而复杂的CASE语句,我不想重复它,当选择FieldB并使用别名FieldA代替.
注意,这将返回多行,因此在SELECT语句之外的DECLARE / SET在我的情况下是不好的.
解决方法
@H_301_11@ 工作方式是使用子查询:SELECT FieldA,FieldA + 20 AS FieldB FROM ( SELECT (CASE WHEN ...) AS FieldA FROM Tbl ) t
为了提高可读性,您还可以使用CTE
:
WITH t AS ( SELECT (CASE WHEN ...) AS FieldA FROM Tbl ) SELECT FieldA,FieldA + 20 AS FieldB FROM t