case语句在select中的用法,以及,insert和select和case合用的例子

 

 

 

SQL> select tag_name,tp_name,value from ins_dynamic;
TAG_NAME     TP_NAME     VALUE
---------------- --------------- --------------
a                    NoString       1
b                    NoString       2

 

 

 

 

 

SQL> select (case when value='1' then 'value=1' when value='2' then 'value=2' else 'other value' end) tag_name1 from ins_dynamic;

 

 

TAG_NAME1

--------------------

value=1

value=2

 

 

 

 

SQL> insert into ins_dynamic(tag_name,tp_name) select 'zzzz.'||tag_name,(case when value='1' then 'value=1' when value='2' then 'value=2' else 'other value' end) from ins_dynamic;

 

已创建2行。

SQL> select tag_name,tp_name,value from ins_dynamic;
TAG_NAME     TP_NAME     VALUE
---------------- --------------- --------------
a                    NoString       1
b                    NoString       2
zzz.a              value=1        NoString
zzz.b              value=2        NoString
最后写一个生猛的
DELETE FROM dict_column_info;
INSERT INTO dict_column_info(table_name,column_name,data_type,data_length,is_nullable,is_key) 
SELECT t1.table_name,t1.column_name,
(case when t1.data_type='VARCHAR2' then 1 
      when t1.data_type='DATE' then 2 
      when t1.data_type='NUMBER' AND t1.data_precision=22 AND t1.data_scale=6 then 3 
      when t1.data_type='NUMBER' AND t1.data_precision=10 AND t1.data_scale=0 then 4 
      else 0 end),
(case when t1.data_type='VARCHAR2' then t1.data_length 
      when t1.data_type='DATE' then 4 
      when t1.data_type='NUMBER' AND t1.data_precision=22 AND t1.data_scale=6 then 4 
      when t1.data_type='NUMBER' AND t1.data_precision=10 AND t1.data_scale=0 then 4 
      else 0 end),
(case when t1.nullable='Y' then 1 
      when t1.nullable='N' then 0 
      else -1 end), 
(case when (t1.table_name,t1.column_name) IN (SELECT t2.table_name,t2.column_name FROM all_cons_columns t2 where t2.owner = 'ISCS' AND t2.constraint_name IN (SELECT t3.constraint_name FROM all_constraints t3 where t3.owner = 'ISCS' AND t3.constraint_type = 'P')) then 1
      else 0 end)
from user_tab_columns t1;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皓月如我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值