1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > oracle:case when then else end

oracle:case when then else end

时间:2019-08-15 17:22:06

相关推荐

oracle:case when then else end

===================case when then else end

(CASE ETDL.ETDL_TYPE

WHEN '00' THEN

'安装'

WHEN '01' THEN

'维修'

WHEN '02' THEN

'拆旧'

WHEN '03' THEN

'测量'

WHEN '04' THEN

'维修+拆旧'

WHEN '05' THEN

'安装+拆旧'

WHEN '06' THEN

'上样'

WHEN '07' THEN

'铺贴指导'

END) AS ETDL_TYPE, --服务类型

--简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男'WHEN sex = '2' THEN '女'ELSE '其他' END

SELECT country 国家,

SUM(CASE WHEN sex='1' THEN population ELSE '0' END) 男,

SUM(CASE WHEN sex='2' THEN population ELSE '0' END) 女,

SUM(population) 总人口

FROM test_case

GROUP BY country;

效果如图:

eg:统计人口

SELECT SUM(population),CASE countryWHEN '中国'THEN '亚洲'WHEN '印度'THEN '亚洲'WHEN '日本'THEN '亚洲'WHEN '美国'THEN '北美洲'WHEN '加拿大' THEN '北美洲'WHEN '墨西哥' THEN '北美洲'ELSE '其他' ENDFROM Table_AGROUP BY CASE countryWHEN '中国'THEN '亚洲'WHEN '印度'THEN '亚洲'WHEN '日本'THEN '亚洲'WHEN '美国'THEN '北美洲'WHEN '加拿大' THEN '北美洲'WHEN '墨西哥' THEN '北美洲'ELSE '其他' END;

Case函数不同于DECODE函数,在Case函数中,可以使用between,like,is null,in,exists等等。

例如:有两个表,tbl_A,tbl_B,两个表中都有keyCol列。现在我们对两个表进行比较,tbl_A中的keyCol列的数据如果 在tbl_B的keyCol列的数据中可以找到, 返回结果'Matched',如果没有找到,返回结果'Unmatched'。

--使用IN的时候:

SELECT keyCol,

CASE WHEN keyCol IN (SELECT keyCol FROM tbl_B)

THEN 'Matched'

ELSE 'Unmatched' END Label

FRO tbl_A;

--使用Exists的时候

SELECT keyCol,

CASE WHEN EXISTS (SELECT * FROM tbl_B WHERE tbl_A.keyCol=tbl_B.keyCol)

THEN 'Matched' ELSE 'Unmatched' END Label

FROM tbl_A;

--相比较而言肯定使用第二种 exists 效率会更高。

引用:/prefect/p/5746624.html

====================== decode

DECODE(

ETHC.ETHC_COST_CODE,

'YCF',

ETHC.ETHC_TOTAL_AMOUNT,

'0') AS LONGDISTANCEMODEL_UNIT_PRICE, --远程费

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。