现在的位置: 网页制作教程网站制作教程 >正文
SQL语句教程

先精确查询再模糊查询的sql语句

发表于2018/8/14 网站制作教程 0条评论 ⁄ 热度 5,414℃

本文主要和大家介绍一个sql语句的写法,实现功能是先精确查询,如果有记录就直接显示,没有记录就执行模糊查询。

有一张user表。里面有个name字段,传值是@name。

要求根据@name查询,如果有值就显示。

select * from user where name=@name

如果没值 就进行模糊匹配:

select * from user where name like '%'+@name+'%'

如果通过一条sql语句实现先精确再模糊查询的功能。我们通过case when可以达到目的。

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
  • 暂无评论