sql - 根据输入在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
解决方案
使用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
说真的,你真的应该考虑标准化你的桌子
推荐阅读
- reactjs - Storybook addon-knobs 回调函数旋钮
- java - 如何使用 java 获取 Aws cloudwatch 日志
- angular - 使用循环显示数组的对象
- css - 如果恰好为 0,CSS 属性“不透明度”是否只会对屏幕阅读器隐藏内容?
- scala - 通过反射将类名传递给Scala中的超类构造函数
- json - AttributeError: '_io.TextIOWrapper' 对象没有属性 'load'
- app-store - iOS 禁用内部版本或平台(iTunes 连接)
- python - Docker FileNotFound 上的熊猫
- node.js - ts 类不是构造函数
- java - 如果在java中我覆盖“equals()”而不是hashCode()怎么办?