我有一个国家/地区标签,用于定义您所在的国家/地区,1-5 ..我已经为您选择了要搜索的女巫国家。我在下拉列表中有一个部分,我想选择全部搜索。如果country为0,那么我希望它不受限制,就像在下面的代码中(country = @country和town = @town)我只想要它(town = @town)等
IF @Case = 1 BEGIN
SELECT
Rec_Id,
Country,
PostalCode,
Town,
Lat,
Lng
FROM dbo.tbl_PostalCode AS PC WITH (NOLOCK)
WHERE
(town = @town AND country = @country) or (postalcode = @postalcode AND country = @country)
答案 0 :(得分:0)
当设置“选择所有国家/地区”选项然后
时,您可以为@country发送空值使用where子句,如下所示: WHERE(@ country是null或country = @country)
编辑:只是为了澄清事情。为什么我会使用空值是因为imho表示“没有对该参数的过滤器”比使用任意值更好。
答案 1 :(得分:0)
如果我正确理解了这个问题,那么你传递的@Country变量的可能值为1 - 5,但是可能的值为0,等于所有国家。
尝试使用以下内容:
IF @Case = 1
BEGIN
SELECT REC_ID,
COUNTRY,
POSTALCODE,
TOWN,
LAT,
LNG
FROM DBO.TBL_POSTALCODE AS PC WITH (NOLOCK)
WHERE ( COUNTRY = @country
OR @country = 0 )
AND ( TOWN = @town
OR POSTALCODE = @postalcode )
END
答案 2 :(得分:0)
您应该只能为WHERE
添加其他条件:
...
WHERE
(@selectAllCountries = 1 OR country = @country)
AND (town = @town OR postalcode = @postalcode)
我显然假设你有一个@selectAllCountries
变量,它是1或0。
答案 3 :(得分:0)
让它工作设置(country = null或town = @town)或(country = null或postalcode = @postalcode)。
感谢您的帮助!