在SQL SELECT语句中重用别名字段

前端之家收集整理的这篇文章主要介绍了在SQL SELECT语句中重用别名字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要这样做:
SELECT 
  (CASE WHEN ...) AS FieldA,FieldA + 20 AS FieldB
FROM Tbl

假设通过“…”我替换了一个长而复杂的CASE语句,我不想​​重复它,当选择FieldB并使用别名FieldA代替.

注意,这将返回多行,因此在SELECT语句之外的DECLARE / SET在我的情况下是不好的.

解决方法

工作方式是使用子查询
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

猜你在找的MsSQL相关文章