代码之家  ›  专栏  ›  技术社区  ›  Jason M

SQL语句中的动态别名

  •  9
  • Jason M  · 技术社区  · 16 年前

    我希望根据SQL Server中查询中其他列名称的值显示别名。例如

    SELECT P.Amount AS (CASE P.Type WHEN 'Individual' THEN 'Salary' ELSE 'Profit' END)
      FROM Person P
    

    我知道上面说的不对,但是像这样的事情会有帮助的。

    5 回复  |  直到 16 年前
        1
  •  12
  •   LukáÅ¡ Lalinský    16 年前

    SELECT
        CASE P.Type WHEN 'Individual' THEN P.Amount ELSE NULL END AS Salary,
        CASE P.Type WHEN 'Individual' THEN NULL ELSE P.Amount END AS Profit
    FROM
        Person p
    
        2
  •  2
  •   Robin Day    16 年前

        3
  •  1
  •   AdaTheDev    16 年前

    SELECT P.Amount, CASE P.Type WHEN 'Individual' THEN 'Salary' ELSE 'Profit' END AS AmountType
    FROM Person P
    
        4
  •  1
  •   mjv    16 年前


        5
  •  0
  •   Cade Roux    16 年前

    IF 1 = (SELECT COUNT(*) FROM Person P WHERE <where-criteria>) THEN
        IF 'Individual' = (SELECT P.Type FROM Person P WHERE <where-criteria>) THEN
            SELECT P.Amount AS Salary
            FROM Person P
            WHERE <where-criteria>
        ELSE
            SELECT P.Amount AS Profit
            FROM Person P
            WHERE <where-criteria>
        END IF
    ELSE
        SELECT P.Amount AS SalaryOrProfit
        FROM Person P
        WHERE <where-criteria>
    END IF