新手求助!请见问题!谢谢!
假设有一个表,id, name
6225,工行
522899,交行信用卡
955742,农行
... , ...
id表示银行卡号的前面几位数字(不定长的),id最少4位,最长是银行卡号的18位数,现在给你一张银行卡,不知道是哪个银行的,如何写一个SQL语句(oracle)输出这个银行的名字。
谢谢各位了!
oracle
[解决办法]
WITH T AS(
SELECT 6225 AS ID,'工商银行' AS NAME FROM DUAL UNION ALL
SELECT 62251 AS ID,'农业银行' AS NAME FROM DUAL UNION ALL
SELECT 622512 AS ID,'建设银行' AS NAME FROM DUAL UNION ALL
SELECT 6225123 AS ID,'民生银行' AS NAME FROM DUAL UNION ALL
SELECT 62251234 AS ID,'邮政银行' AS NAME FROM DUAL UNION ALL
SELECT 622512345 AS ID,'瑞士银行' AS NAME FROM DUAL
)
SELECT ID,NAME FROM T WHERE T.ID IN(
SELECT MAX(ID) FROM T WHERE '62251234567890' LIKE ID
[解决办法]
'%'
);