Sql server 带多个条件的SQL where子句
在我的数据库表中,我有一些值,如上图所示 我想检查where子句中的一些条件 我想通过URL查询 DemoOrPaid=PAID,ValidUpto=NULL=>然后返回1 2.DemoOrPaid=已支付且ValidUpto=不为空,然后与当前日期进行比较,检查ValidUpto是否返回1 DemoOrPaid=DEMO和ValidUpto=NULL=>然后返回0 DemoOrPaid=DEMO和ValidUpto=NOT NULL,然后与当前日期进行比较,检查ValidUpto是否返回0Sql server 带多个条件的SQL where子句,sql-server,tsql,Sql Server,Tsql,在我的数据库表中,我有一些值,如上图所示 我想检查where子句中的一些条件 我想通过URL查询 DemoOrPaid=PAID,ValidUpto=NULL=>然后返回1 2.DemoOrPaid=已支付且ValidUpto=不为空,然后与当前日期进行比较,检查ValidUpto是否返回1 DemoOrPaid=DEMO和ValidUpto=NULL=>然后返回0 DemoOrPaid=DEMO和ValidUpto=NOT NULL,然后与当前日期进行比较,检查ValidUpto是否返回0 如
如果要返回某个计算列,则可以使用如下内容:
select
case
when DemoOrPaid = 'PAID' and ValidUpto is null then 1
when DemoOrPaid = 'PAID' and ValidUpto is not null and ValidUpto <= getdate() then 1
when DemoOrPaid = 'DEMO' and ValidUpto is null then 1
else 0
end
在您的条件未涵盖的情况下,实际上有点不清楚您希望返回什么。下面将返回所有匹配的行
select * from Table where
(DemoOrPaid='PAID' and ValidUpto is NULL) or
(DemoOrPaid='PAID' and ValidUpto is NOT NULL and ValidUpto<=GETDATE()) or
(DemoOrPaid='DEMO' and ValidUpto is NULL) or
(DemoOrPaid='DEMO' and ValidUpto is NULL and ValidUpto<=GETDATE())
2.什么东西该还。四,。如果不满足相应的条件,我将@iCount声明为int set@iCount=从tbl\u AdminCompanyMaster中选择COUNTCompany\u ID,其中URL=LTRIMRTRIM@URLDemoOrPaid='PAID'和ValidUpto为空或DemoOrPaid='PAID'和ValidUpto不为空和ValidUpto