投稿 评论 顶部

casewhen函数

佚名 网络安全

--Case函数:

--有两种格式:

--     1.简单Case函数。

--     2.Case搜索函数。

--1.简单Case函数:

--    CASE [COLUMN_NAME] 

--        WHEN ['条件参数'] THEN ['COLUMN_NAME/显示内容']

--        WHEN ['条件参数'] THEN ['COLUMN_NAME/显示内容']

--        ......

--        ELSE ['COLUMN_NAME/显示内容']

--        END

--2.Case搜索函数:

--    CASE WHEN [COLUMN_NAME] = ['COLUMN_NAME/显示内容/表达式'] THEN [''COLUMN_NAME/显示内容'']

--         WHEN [COLUMN_NAME] = ['COLUMN_NAME/显示内容/表达式'] THEN [''COLUMN_NAME/显示内容'']

--         ......

--         ELSE ['COLUMN_NAME/显示内容']

--         END

--说明:两种方式可以实现相同的功能。简单CASE函数较CASE搜索函数语法简洁,但功能方面有所限制。

--比如说写判断式。同时还需要注意一点:CASE函数只返回第一个符合条件的值,剩下达到CASE部分将会被自动忽略。

--另外:使用CASE()函数一方面可以在查询时灵活的组织语法结构,另外一方面可以避免对同一张或多张表的多次访问。--重点说明:ELSE可以没有。

--EG:

SELECT C.* , 

    CASE WHEN C.T_NUMBER = '1' THEN '男' 

        WHEN C.T_NUMBER = '2' THEN '女'

        ELSE '其他'

        END AS '性别'

    FROM DAY20190706 C;

    

SELECT C.* , 

    CASE WHEN C.T_NUMBER < '1' THEN '男' 

        WHEN C.T_NUMBER > '2' THEN '女'

        ELSE '其他'

        END AS '性别'

    FROM DAY20190706 C;


SELECT C.* , 

    CASE WHEN C.T_NUMBER = '1' OR C.T_NUMBER = '0' THEN '男' 

        WHEN C.T_NUMBER = '2' THEN '女'

        ELSE '其他'

        END AS '性别' 

    FROM DAY20190706 C;

    

SELECT C.* , 

    CASE WHEN C.T_NUMBER = '1' AND C.T_NUMBER = '0' THEN '男' 

        WHEN C.T_NUMBER = '2' THEN '女'

        ELSE '其他'

        END AS '性别' 

    FROM DAY20190706 C;