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

關于case when語句的報錯問題詳解

 更新時間:2018年08月15日 11:21:32   作者:一直是小學生  
SQL CASE 表達式是一種通用的條件表達式,類似于其它語言中的 if/else 語句,下面這篇文章主要給大家介紹了關于case when語句的報錯問題的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

在mysql數(shù)據(jù)庫中,有時候我們會使用到類似if else的判斷操作。那么mysql中怎么處理這種需求呢?

mysql 判斷操作一種語法:

case ..when語句

但最近在使用的時候遇到了一個問題,下面話不多說了,來一起看看詳細的介紹吧

直接說明問題。我有一張存儲身份證號碼的表id_card_message,表結構和數(shù)據(jù)如下(MySQL5.7.14):

mysql> select * from id_card_message;

+------+--------------------+

| id | id_card_no |

+------+--------------------+

| 1 | 342513199411222515 |

| 1 | 342624197812023498 |

| 1 | 310908198910123348 |

+------+--------------------+

現(xiàn)在根據(jù)這個身份證號碼的倒數(shù)第二位來顯示出男女信息,我按照下面的SQL語句執(zhí)行,結果報出相應的錯誤:

mysql> select case substr(id_card_no,17,1)

-> when (1,3,5,7,9) then '男'

-> when (0,2,4,6,8) then '女' end 'sex',

-> id_card_no

-> from id_card_message;

ERROR 1241 (21000): Operand should contain 1 column(s)

錯誤提示我:操作數(shù)應該包含一列。這里只能懷疑是when子句后面括號內的值過多的原因造成的,那么這種case when結構下,when子句后面只能出現(xiàn)一個值嗎?查了以下官方文檔在13.6.5.1節(jié)的case語法,貌似對這個沒有說明。

當然,換種語句格式,一樣能得到所需要的數(shù)據(jù)。如下:

mysql> select

-> case

-> when substr(id_card_no,17,1) in (1,3,5,7,9) then '男'

-> when substr(id_card_no,17,1) in (0,2,4,6,8) then '女' end 'sex',

-> id_card_no

-> from id_card_message;

+------+--------------------+

| sex | id_card_no |

+------+--------------------+

| 男 | 342623199610222515 |

| 男 | 342624197812023498 |

| 女 | 310908198910123348 |

+------+--------------------+

現(xiàn)在的想法就是,在“CASE value WHEN compare value”的格式下,when子句后面的compare value只能是單個值,不能接多個值。例如上面的compare value的值有1,3,5,7,9。這種情況下只能采用上面的SQL。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • mysql數(shù)據(jù)表的基本操作之表結構操作,字段操作實例分析

    mysql數(shù)據(jù)表的基本操作之表結構操作,字段操作實例分析

    這篇文章主要介紹了mysql數(shù)據(jù)表的基本操作之表結構操作,字段操作,結合實例形式分析了mysql表結構操作,字段操作常見增刪改查實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2020-04-04
  • winx64下mysql5.7.19的基本安裝流程(詳細)

    winx64下mysql5.7.19的基本安裝流程(詳細)

    這篇文章主要介紹了winx64下mysql5.7.19的基本安裝流程,需要的朋友可以參考下
    2017-10-10
  • mysql limit分頁優(yōu)化方法分享

    mysql limit分頁優(yōu)化方法分享

    MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁帶來了極大的方便,但數(shù)據(jù)量一大的時候,limit的性能就急劇下降。
    2011-04-04
  • 解讀SQL中GROUP BY和HAVING子句中使用NULL條件問題

    解讀SQL中GROUP BY和HAVING子句中使用NULL條件問題

    在使用SQL進行數(shù)據(jù)查詢時,可能會遇到查詢結果為空的情況,這通常與GROUP BY和HAVING子句的使用有關,尤其是在處理包含NULL值的字段時,當使用GROUP BY進行數(shù)據(jù)分組,并在HAVING子句中直接判斷字段是否為NULL時
    2024-10-10
  • mysql error 1130 hy000:Host''localhost''解決方案

    mysql error 1130 hy000:Host''localhost''解決方案

    本文將詳細提供mysql error 1130 hy000:Host'localhost'解決方案,需要的朋友可以參考下
    2012-11-11
  • 解決MySql8.0 查看事務隔離級別報錯的問題

    解決MySql8.0 查看事務隔離級別報錯的問題

    這篇文章主要介紹了解決MySql8.0 查看事務隔離級別報錯的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • mysql 事務處理及表鎖定深入簡析

    mysql 事務處理及表鎖定深入簡析

    本文將詳細介紹mysql 事務處理及表鎖定,需要了解更多的朋友可以參考下
    2012-11-11
  • MySQL存儲過程的概念與用法實例

    MySQL存儲過程的概念與用法實例

    我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時候需要要先編譯,然后執(zhí)行,而存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,下面這篇文章主要給大家介紹了關于MySQL存儲過程的相關資料,需要的朋友可以參考下
    2022-02-02
  • MySQL-8.0.26配置圖文教程

    MySQL-8.0.26配置圖文教程

    最近公司項目更換數(shù)據(jù)庫版本,在此記錄分享一下自己安裝配置MySQL8.0版本的過程吧,本文通過圖文并茂的形式給大家介紹的非常詳細,對MySQL-8.0.26配置教程感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • 深入Mysql字符集設置分析

    深入Mysql字符集設置分析

    深入Mysql字符集設置分析,使用mysql的朋友可以參考下
    2012-03-03

最新評論

遵化市| 扎兰屯市| 平邑县| 方城县| 海阳市| 壶关县| 高安市| 南溪县| 吐鲁番市| 陆川县| 安义县| 南木林县| 泉州市| 天柱县| 安达市| 公主岭市| 大渡口区| 锡林浩特市| 香格里拉县| 红桥区| 讷河市| 津南区| 丰原市| 卢氏县| 夹江县| 潜江市| 万荣县| 麟游县| 开封县| 荆门市| 夹江县| 兴国县| 沁源县| 叙永县| 嵊泗县| 新竹市| 湘乡市| 大名县| 西贡区| 烟台市| 板桥市|