首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用关键字的sql服务器级别

使用关键字的sql服务器级别
EN

Stack Overflow用户
提问于 2017-02-11 12:25:13
回答 1查看 31关注 0票数 0

我有一个表,它包含一个表中的银行ID (不是唯一的)和银行名称。如果银行名称中包含关键字' bank‘,我想给它排序一次,如果它有’金融‘,排名第二,而’信任‘则排名第三。

代码语言:javascript
复制
 Create table dbo.banknames(id int null,bankname varchar(200) null)
 insert into dbo.bankname(1,'U.S. Trust')
 insert into dbo.bankname(1,'Bank of america')
 insert into dbo.bankname(1,'BOA Financial services')
 insert into dbo.bankname(2,'Citizens trust')
 insert into dbo.bankname(3,'People''s bank trust')
 insert into dbo.bankname(3,'People''s financial service')

输出应该如下所示

代码语言:javascript
复制
Create table dbo.ExpectedOUTPUTbanknames(id int null,bankname varchar(200) null,rank int null)
insert into dbo.ExpectedOUTPUTbankname(1,'U.S. Trust',3)
insert into dbo.ExpectedOUTPUTbankname(1,'Bank of america',1)
insert into dbo.ExpectedOUTPUTbankname(1,'BOA Financial services',2)
insert into dbo.ExpectedOUTPUTbankname(2,'Citizens trust',3)
insert into dbo.ExpectedOUTPUTbankname(3,'People''s bank trust',1)
insert into dbo.ExpectedOUTPUTbankname(3,'People''s financial service',2)

select * 
into dbo.OUTPUTbankname
(
SELECT *,1 as RNK FROM  dbo.banknames
    WHERE (bankname LIKE '%bank%')
    UNION
    SELECT *,1 as RNK FROM  dbo.banknames
    WHERE (bankname LIKE '%financial%')
    UNION
    SELECT *,1 as RNK FROM  dbo.banknames
    WHERE (bankname LIKE '%trust%')
) qrey

对于bankid =3,因为银行名称有关键字银行和信任,所以我得到了3行,与rank=1的“人民的银行信任”和rank=2的“人民的银行信任”和rank=3的“人民的银行信任”。

谢谢先生

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-11 12:32:45

使用CASE表达式:

代码语言:javascript
复制
SELECT id,
       bankname,
       CASE WHEN bankname LIKE '%[Bb]ank%'      THEN 1
            WHEN bankname LIKE '%[Ff]inancial%' THEN 2
            WHEN bankname LIKE '%[Tt]rust%'     THEN 3
       END AS rank
FROM dbo.banknames

幸运的是,Server在其LIKE表达式中支持字符范围,因此无论第一个字母是否大写,匹配关键字都很容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42175838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档