【背景】
业务库需要根据某“编号类”字段数据情况,在业务表中根据“编号类”字段是否为空,生成一个标识类数据字段。使用到了case when函数,但在使用的过程中,却忽视了这个作为条件并且用于判断的字段,在case when函数中所出现的位置。
【解决】
使用case when函数
语法:
SELECT <Column>
CASE
WHEN <A> THEN <RESULT_A>
WHEN <B> THEN <RESULT_B>
ELSE <RESULT_C> END ;
【实验】
1、创建实验表
CREATE TABLE TEST_CASE_WHEN
(
ID VARCHAR2(50),
DM VARCHAR2(50)
);
2、插入实验数据
INSERT INTO TEST_CASE_WHEN(ID,DM) VALUES('1','120001212');
INSERT INTO TEST_CASE_WHEN(ID,DM) VALUES('2','120001223');
INSERT INTO TEST_CASE_WHEN(ID,DM) VALUES('3','1200