SQL Server中如果查询条件为空,则查询全部,如何实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server中如果查询条件为空,则查询全部,如何实现?相关的知识,希望对你有一定的参考价值。

如题如何实现?有相关教程有相关教程最好。

DECLARE @update DATETIME
SELECT * FROM A
WHERE @updata=0 OR CreateTime>@update


稍微解释一下思路,当传入参数=0是,就是全部,因为肯定是成立的,如果是其他值则走后面的条件查询,这种是最简单的实现,其他类型的参数相信你可以举一反三。

参考技术A 假设 @c 是条件,则可以这样:
if @c is null or @c = ''
select * from table_name
else
select * from table_name where column_name = @c
参考技术B 查询条件为空 自然是查询全部啊........
语句 select * from A where 1=1
条件语句 任意, 只需要and开头即可.
参考技术C 通常如果条件很短很少,可以用if else写几组语句来做
如果条件很多的话就采用字符拼接执行
参考技术D declare @where
declare @sql
set @sql='select * from 表 '
if @where is null or @where =''
begin
@sql=@sql+@where
end
exec(@sql)

ORACLE查询条件为空,则跳过该条件。

比如说我要按性别进行查询,如果性别为空的时候,则查询不受性别约束

参考技术A where sex='女' or sex is null 这样是查出性别为女或者性别为空的数据吧。
我理解是这样:
Select * from table where sex = (case when nvl(条件, '*') = '*' then sex else 条件 end);
这样的话,传入是“女”,就是查询 sex=“女”,传入的是空,则查询全部。
oracle 9i测试通过本回答被提问者采纳
参考技术B WHERE GANDER=NVL(条件,GANDER) 参考技术C where nvl(sex,'男')='男'
where nvl(sex,'女')='女'
这样就可以了
参考技术D where sex='女' or sex is null 这样可以的啊

以上是关于SQL Server中如果查询条件为空,则查询全部,如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

当条件全部为空时,查询全部,当其中一个或两个条件为空时,为空的条件不查询,sql怎么写

参数为空取全部数据的几种做法

SQL Server学习笔记——单表查询

SQL Server学习笔记——单表查询

SQL条件语句?

ORACLE查询条件为空,则跳过该条件。