我想创建一个可以使用个人ID或缺少所有可能ID的过程。
我按照以下方式进行设置:
CREATE PROCEDURE my_procedure(proc_id INTEGER)
IF proc_id = -1 THEN SET proc_id = ALL_IDS END IF
SELECT something...
FROM somewhere...
WHERE primary_id = proc_id;
我想知道如何让ALL_IDS成为所有ID,以及如何调用WHERE语句以供两个选项使用。
谢谢。
答案 0 :(得分:2)
我认为最直接的编码方式是:
WHERE primary_id = proc_id OR proc_id = -1
(我没有看到@EdGibbs在评论中已经给出了这个答案。你为什么不发布这个答案?)
BTW,我会使用NULL而不是-1,因为SQL中的NULL意味着用于"没有值。"然后查询将具有:
WHERE primary_id = proc_id OR proc_id IS NULL