我正在制作一个sql脚本,用于获取表格中的所有条目或只是一些。由于程序的限制,我只能使用sql来获取结果。
在脚本运行之前,您可以设置变量。这些不能为空。
问题是我需要在变量中加入一个值,然后在WHERE中搜索spesified数字或所有数字。
@_PARA_DATE=From date#01.01.2015
@_PARA_MIN_PERC=%#1
@_PARA_PLACE_NUMBER=PLACE#All results
select *
from
Table_1
INNER JOIN Table_2 ON Table2_nr = table_1.nr
INNER JOIN Table_3 ON Table3_nr = table_1.nr
INNER JOIN Table_4 ON Table4_nr = table_1.nr
WHERE
(@_PARA_DATE BETWEEN Table_1.fromdate AND Table_1.todate)
AND table_1.perc >= @_PARA_min_perc
if @_PARA_PLACE_NUMBER <> 'All results'
AND table_1.placenr = @_PARA_PLACE_NUMBER
答案 0 :(得分:0)
如果你可以设置@number = NULL,那么WHERE子句很简单:
WHERE Isnull(@number, id_number) = id_number
这样,如果你传递@number&lt;&gt; null然后where子句返回@number = id_number否则它将返回id_number = id_number [tautology]所以一切。
答案 1 :(得分:0)
你的WHERE子句应该是
WHERE
(@number = 'some number' and id_number = @number) OR
(@number = 'everything')
请注意,您可以使用NULL来更好地处理
WHERE
(@number is not null and id_number = @number) OR
(@number is null)
如果要返回所有行,只需将NULL传递给变量