Sql语句:首先完全匹配,然后进行模糊查询
发布时间 :2021-03-26 20:06:48 浏览: 112次 来源:网络整理 作者:佚名
Sql语句:首先完全匹配,然后进行模糊查询

查询要求:MSSQL数据库,首先完整而准确的查询,如果有记录sql语句模糊查询或者,将直接显示亚博首页登录沙巴app ,如果没有记录,则将进行模糊匹配。如何通过SQL查询语句实现?

有一个用户表。有一个名称字段sql语句模糊查询或者,[受电子邮件保护],完整的查询

select * from user where [email protected]

如果有值,则直接显示,如果没有值,请执行模糊查询

select * from user where name like [email protected]+'%'

实施说明:

sql语句 模糊查询_mysql模糊查询sql语句_sql语句模糊查询或者

方法1

with table1 as
(
select 'a' [name] union all
select 'bac' [name] union all
select 'b' [name]
)
select * from table1 
where [name] like case when (select COUNT(*) from table1 where [name]='a') >0 then 'a' else '%a%' end

方法二

-- 参数
DECLARE @name varchar(20)
SET @name = 'x'
 
-- 一条sql搞定
;WITH
/* 测试数据
[user](id,[name]) as
(
    SELECT 1,'x' UNION ALL
    SELECT 2,'y' UNION ALL
    SELECT 3,'xyz' UNION ALL
    SELECT 4,'zyx'
),*/
a AS (
    select *,1 grp from [user] where [email protected]
    UNION ALL
    select *,2 grp from [user] where name like [email protected]+'%'
),
b AS (
    SELECT *,
           RANK() OVER(ORDER BY grp) rank
      FROM a
)
 
SELECT id,[name]
  FROM b
 WHERE rank = 1

@name ='x'的结果

id name
----------- ----
1 x

@name ='z'的结果

  id name
----------- ----
  3 xyz
  4 zyx

我个人认为,第二种方法在先进行准确查询再进行模糊查询方面会更有效。

免责声明:如果您需要转载亚博APP买球首选 ,请注明出处并保留原始链接:

上一篇 负离子直发器,呵护秀发而不伤秀发
深圳公司:
球探体育-足球比分_篮球比分_即时比分直播官网
Shenzhen Moan Enterprise Image Design Co., Ltd.
深圳市福田区红荔西路第壹世界广场B座15A
15A,Building B,First World Plaza,No,7002,West Hongli Rd,Shenzhen
400-833-0755
135 9035 8806
0755-8392 3996
香港公司:
香港摩恩企业形象设计有限公司
Hong Kong Moan Enterprise Image Design Co., Ltd.
香港尖沙咀海港城海运大厦叁楼302室
Room 302, 3 / F, Maritime Building, Harbour City, Tsim Sha Tsui, Hongkong.
00852-6778 6216
Copyright © 2008-2019 | All Rights Reserved   |  球探体育-足球比分_篮球比分_即时比分直播官网  粤ICP备06061602号