SQL输入值是单个值还是多个值

时间:2019-02-20 11:12:15

标签: sql

SQL查询中,如果输入值为0,则将输入作为该列的所有值,否则仅考虑输入值;

假设输入city_num = 0然后对所有城市编号(即1到50)运行查询,否则对输入city_num进行查询,说5。如何编码?

if the City_num = 0 then Select * from emp where City_num in  1to 50
if the City_num = 5 then Select * from emp where City_num = 5

;

2 个答案:

答案 0 :(得分:1)

添加以下WHERE语句:

WHERE city_num = ? OR 0 = ?

如果您通过0,则等效于:

WHERE city_num = 0 OR 0 = 0

,由于0 = 0始终为TRUE,因此它将获取所有行。
如果您通过5,则等效于:

WHERE city_num = 5 OR 0 = 5

,由于0 = 5始终为FALSE,因此它将仅获取city_num = 5的行。

答案 1 :(得分:0)

尝试一下:

DECLARE @input INT = 2;
SELECT * FROM TABLE1
WHERE (city_num= @input AND @input > 0) OR @input = 0;

我假设city_num是整数。如果是varchar,则进行较小的修正