首页 > 解决方案 > 根据输入在Column上添加变量并显示实际值

问题描述

我想在我的字段上分配一个变量来更改 MONTH 字符,我有 3 个字段[PRODUCT 1 - JAN - Q1 TARGET][PRODUCT 1 - FEB- Q1 TARGET]并且[PRODUCT 1 - MAR- Q1 TARGET]取决于我的输入,但是当我尝试使用+来合并变量'[PRODUCT 1 - '+@MONTH+'- Q1 TARGET]'时,它只显示文本而不是我的字段的值。

DECLARE @MONTH CHAR(3),
        @YEAR INT
SELECT
    [CODE],
    @MONTH TARGETMONTH,
    @YEAR TARGETYEAR,
    [PRODUCT 1 - FEB - Q1 TARGET] TARGET
FROM
    QUARTER1_TARGET

标签: sqlsql-servertsql

解决方案


使用CASE表达式返回所需的列

SELECT CASE @Month
       WHEN 'JAN' THEN [PRODUCT 1 - JAN - Q1 TARGET]
       WHEN 'FEB' THEN [PRODUCT 1 - FEB - Q1 TARGET]
       WHEN 'MAR' THEN [PRODUCT 1 - MAR - Q1 TARGET]
       END AS TARGET

说真的,你真的应该考虑标准化你的桌子


推荐阅读