最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法詳解

 更新時(shí)間:2025年10月08日 13:16:54   作者:思靜魚  
CASE WHEN是SQL中非常實(shí)用的條件表達(dá)式,它允許你在查詢中實(shí)現(xiàn)條件邏輯,本文給大家介紹SQL中CASE WHEN及SELECT CASE WHEN的用法,感興趣的朋友一起看看吧

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法

CASE WHEN 是 SQL 中非常實(shí)用的條件表達(dá)式,它允許你在查詢中實(shí)現(xiàn)條件邏輯。以下是詳細(xì)的用法說明:

1. 基本語法結(jié)構(gòu)

CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END

或者簡(jiǎn)單形式:

CASE expression 
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE default_result
END

2. 在 SELECT 語句中的用法

示例1:簡(jiǎn)單條件判斷

SELECT 
    employee_name,
    salary,
    CASE 
        WHEN salary > 10000 THEN '高薪'
        WHEN salary > 5000 THEN '中等'
        ELSE '一般'
    END AS salary_level
FROM employees;

示例2:等值比較(簡(jiǎn)單形式)

SELECT 
    product_name,
    CASE category_id
        WHEN 1 THEN '電子產(chǎn)品'
        WHEN 2 THEN '服裝'
        WHEN 3 THEN '食品'
        ELSE '其他'
    END AS category_name
FROM products;

3. 在 UPDATE 語句中的用法

UPDATE orders
SET discount = 
    CASE 
        WHEN order_amount > 1000 THEN 0.1
        WHEN order_amount > 500 THEN 0.05
        ELSE 0
    END;

4. 在 ORDER BY 中的用法

SELECT * FROM customers
ORDER BY 
    CASE 
        WHEN country = 'China' THEN 1
        WHEN country = 'USA' THEN 2
        ELSE 3
    END;

5. 在 GROUP BY 中的用法

SELECT 
    CASE 
        WHEN age < 20 THEN '青少年'
        WHEN age BETWEEN 20 AND 30 THEN '青年'
        ELSE '成年'
    END AS age_group,
    COUNT(*) AS count
FROM users
GROUP BY age_group;

6. 嵌套 CASE WHEN 用法

SELECT 
    student_name,
    score,
    CASE 
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 
            CASE 
                WHEN attendance_rate > 0.9 THEN 'B+'
                ELSE 'B'
            END
        WHEN score >= 70 THEN 'C'
        ELSE 'D'
    END AS grade
FROM students;

7. 在聚合函數(shù)中使用

SELECT 
    department_id,
    SUM(CASE WHEN gender = 'M' THEN 1 ELSE 0 END) AS male_count,
    SUM(CASE WHEN gender = 'F' THEN 1 ELSE 0 END) AS female_count
FROM employees
GROUP BY department_id;

注意事項(xiàng)

  1. CASE WHEN 會(huì)按順序判斷條件,第一個(gè)滿足的條件會(huì)被執(zhí)行,后面的條件將被忽略
  2. 如果沒有條件滿足且沒有 ELSE 子句,結(jié)果將為 NULL
  3. 所有 THEN 子句返回的數(shù)據(jù)類型應(yīng)該兼容
  4. 在復(fù)雜的 CASE 表達(dá)式中,適當(dāng)使用括號(hào)可以提高可讀性

CASE WHEN 是 SQL 中非常強(qiáng)大的條件表達(dá)式,掌握它可以讓你寫出更加靈活和強(qiáng)大的查詢語句。

到此這篇關(guān)于SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法的文章就介紹到這了,更多相關(guān)sql case when和select case when用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

连城县| 隆化县| 冷水江市| 东乡县| 长海县| 即墨市| 五河县| 新巴尔虎左旗| 阆中市| 岳普湖县| 海阳市| 中牟县| 贵定县| 湄潭县| 凭祥市| 永修县| 湖南省| 特克斯县| 沽源县| 什邡市| 门源| 湄潭县| 大石桥市| 洛浦县| 广安市| 乳源| 武鸣县| 收藏| 孝昌县| 方山县| 合山市| 同德县| 鸡东县| 天台县| 山阴县| 宁明县| 黄大仙区| 永定县| 平江县| 定日县| 弋阳县|