[英]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.