我有SQL查询:
select * from table where id in (1,2)
1,2是我动态添加的参数。但是,如果我有空集:
select * from table where id in ()
然后这个查询调用异常:
ERROR at line 1:
ORA-00936: missing expression
我应该如何使用空集
创建sql答案 0 :(得分:4)
您始终可以将null
添加到您的集合中,因此当真实集合为空时,您不会收到语法错误:
select * from table where id in (null,1,2)
VS
select * from table where id in (null)
您的生成器也会更简单,因为您可以在添加的每个项目前打印,
,而不检查它是否是第一个。
当然,因为您正在生成SQL,所以针对SQL Injection的标准预防措施适用:不要让用户输入您生成的SQL附近的任何地方。
答案 1 :(得分:0)
试试这个
select * from table where id in (null)