繁体   English   中英

带有多个子字符串的 Mysql CASE

[英]Mysql CASE with multiple substring legths

我有数百个世界电话号码。 每个都有其国家/地区前缀(前缀各不相同:有些是 1、2、3 或 4 位数字)+ 电话号码。 我想编写一个 mysql 查询,它将使用前缀向我显示国家/地区名称。

示例:如果我对前 3 位数字使用子字符串,则它工作正常。 但是如何显示 2 位或 4 位长的前缀?

SELECT(
CASE (SUBSTR(Number,1,3))
WHEN '998' Then 'Uzbekistan '
WHEN '996' Then 'Kyrgyzstan '
WHEN '995' Then 'Georgia '
.....
....
ELSE 'OTHERS' END ) AS Country

一个简单的解决方案是基于CASE语句按顺序计算的事实。

SELECT(
    CASE 
      WHEN SUBSTR(Number,1,2) = '23' Then 'Try For 23 '   
      WHEN SUBSTR(Number,1,3) = '998' Then 'Uzbekistan '
      WHEN SUBSTR(Number,1,3) = '996' Then 'Kyrgyzstan '
      WHEN SUBSTR(Number,1,3) = '995' Then 'Georgia '
     .....
     ....
     ELSE 'OTHERS' END ) AS Country

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM