Stored procedures 如何通过在存储过程中使用insert在DB2中使用CASE/WHEN?
我有一个DB2的存储过程,我想在名为SEASON的字段中填充W表示冬季,S表示夏季。程序已完成,但我无法处理逻辑。有人能告诉我这是怎么回事吗 这适用于数据仓库中的维度表Stored procedures 如何通过在存储过程中使用insert在DB2中使用CASE/WHEN?,stored-procedures,db2,switch-statement,Stored Procedures,Db2,Switch Statement,我有一个DB2的存储过程,我想在名为SEASON的字段中填充W表示冬季,S表示夏季。程序已完成,但我无法处理逻辑。有人能告诉我这是怎么回事吗 这适用于数据仓库中的维度表 插入ABC.TIME\u维度( 日期, 季节, 克特尔) 价值观( 日期(myDate), 案例 当月份(myDate)=1时,则 设定季节='W'; 当月份(myDate)=2时 设定季节='W'; 当月份(myDate)=2时 设置季节='S'; 其他的 设定季节='X'; 结案。 季度(装货日期); 我在存储过程中得到一
插入ABC.TIME\u维度(
日期,
季节,
克特尔)
价值观(
日期(myDate),
案例
当月份(myDate)=1时,则
设定季节='W';
当月份(myDate)=2时
设定季节='W';
当月份(myDate)=2时
设置季节='S';
其他的
设定季节='X';
结案。
季度(装货日期);
我在存储过程中得到一个错误一种方法(还有其他方法):
注意:不要对表列名使用保留字
在存储过程中执行此操作的一种方法(还有其他方法):
注意:不要对表列名使用保留字
查看可在其他语句中使用的描述 它不同于传统 您必须在您的案例中使用
案例表达式
:
INSERT into ABC.TIME_DIMEMSION (
DATE,
SEASON,
QUERTER)
VALUES(
DATE(myDate),
CASE MONTH(myDate)
WHEN 1 THEN 'X'
WHEN 2 THEN 'Y'
ELSE 'Z'
END,
QUARTER(loaddate)
);
-- or
INSERT into ABC.TIME_DIMEMSION (
DATE,
SEASON,
QUERTER)
VALUES(
DATE(current timestamp),
CASE
WHEN MONTH(current timestamp)=1 THEN 'X'
WHEN MONTH(current timestamp)=2 THEN 'Y'
ELSE 'Z'
END,
QUARTER(current timestamp)
);
查看可在其他语句中使用的描述 它不同于传统 您必须在您的案例中使用
案例表达式
:
INSERT into ABC.TIME_DIMEMSION (
DATE,
SEASON,
QUERTER)
VALUES(
DATE(myDate),
CASE MONTH(myDate)
WHEN 1 THEN 'X'
WHEN 2 THEN 'Y'
ELSE 'Z'
END,
QUARTER(loaddate)
);
-- or
INSERT into ABC.TIME_DIMEMSION (
DATE,
SEASON,
QUERTER)
VALUES(
DATE(current timestamp),
CASE
WHEN MONTH(current timestamp)=1 THEN 'X'
WHEN MONTH(current timestamp)=2 THEN 'Y'
ELSE 'Z'
END,
QUARTER(current timestamp)
);