首页 > 解决方案 > 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

;

标签: sql

解决方案


添加此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.


推荐阅读