条件where子句SQLServer
我在使用SQLServer2008时遇到了这个问题。我有一个功能,用户可以从菜单中选择多个日期。他们还可以选择勾选复选框“选择所有日期” 如果他们选中复选框,我的查询应该只返回给定日期内的结果。因此,执行WHERE条款。 如果他们没有选择复选框,而是选择了一个或多个日期;查询应使用where子句执行 我有两个参数。 -选定日期(如“2012-11-15”、“2012-11-15”) -所有日期('X'或') 通常查询如下所示:条件where子句SQLServer,sql,sql-server,where,Sql,Sql Server,Where,我在使用SQLServer2008时遇到了这个问题。我有一个功能,用户可以从菜单中选择多个日期。他们还可以选择勾选复选框“选择所有日期” 如果他们选中复选框,我的查询应该只返回给定日期内的结果。因此,执行WHERE条款。 如果他们没有选择复选框,而是选择了一个或多个日期;查询应使用where子句执行 我有两个参数。 -选定日期(如“2012-11-15”、“2012-11-15”) -所有日期('X'或') 通常查询如下所示: SELECT * FROM x WHERE x.date in ([
SELECT * FROM x
WHERE x.date in ([Param.1])
SELECT * FROM x
WHERE x.date in ([Param.1]) OR ([Param.2]) = 'X'
所以我的问题是:如果不需要WHERE子句,我如何调整查询
仅供参考:在我工作的环境中使用[Param.1]符号。此处
AllDates
是第二个参数,当用户选中所有日期的复选框时
IF(AllDates is not null)
SELECT * FROM x
ELSE
SELECT * FROM x
WHERE x.date in ([Param.1])
这里
AllDates
是第二个参数,当用户选中所有日期的复选框时
IF(AllDates is not null)
SELECT * FROM x
ELSE
SELECT * FROM x
WHERE x.date in ([Param.1])
如果控件中存在所有日期,则“全选”也可以生成日期,这样您仍然可以使用WHERE in('date1','dateN')) 你也有这个选择
WHERE x.Date IN (.....) OR AllDates = 'X'
如果控件中存在所有日期,则“全选”也可以生成日期,这样您仍然可以使用WHERE in('date1','dateN')) 你也有这个选择
WHERE x.Date IN (.....) OR AllDates = 'X'
简单地说,使用OR子句,如果选中alldates,它将返回所有日期的数据,如下所示:
SELECT * FROM x
WHERE x.date in ([Param.1])
SELECT * FROM x
WHERE x.date in ([Param.1]) OR ([Param.2]) = 'X'
如果选中参数2(“X”),它将忽略第一个条件的结果,因为您正在使用OR子句。简单,使用OR子句,如果选中alldates,它将返回所有日期的数据,如下所示:
SELECT * FROM x
WHERE x.date in ([Param.1])
SELECT * FROM x
WHERE x.date in ([Param.1]) OR ([Param.2]) = 'X'
如果选中参数2('X'),它将忽略第一个条件的结果,因为您正在使用OR子句。
。。。或者AllDates='X'
?您必须使用T-SQL(一种具有逻辑的存储过程,即,如果参数值为X,您可以执行一条语句,如果参数值为X,则可以执行另一条语句),请参见。。。或者AllDates='X'
?必须使用T-SQL(一种具有逻辑的存储过程,即,如果参数值为X,则可以执行一条语句,如果参数值为X,则可以执行另一条语句),请参阅