gpt4 book ai didi

sql - Firebird 存储过程中的动态 SQL(where)

转载 作者:行者123 更新时间:2023-12-01 21:58:19 24 4
gpt4 key购买 nike

我有一个接收 2 个参数的 SP,P1P2,如下所示:

CREATE OR ALTER PROCEDURE MY_PROC (P1 varchar(10), P2 smallint = 1)
RETURNS (
code VARCHAR(10),
name VARCHAR(70),
state VARCHAR(2),
situation VARCHAR(20)
AS
...
...

我需要根据 P2 参数生成 where 子句,如下所示:

if (P2=1) then
where (state='SP' and situation='stopped')
elseif (P2=2)
where (state='MG' and situation='moving')

如何在where子句中使用这种if语句?

最佳答案

对我而言,您的问题可以转化为 SQL 查询的 WHERE 子句中的简单 OR 条件:

WHERE
(:P2 = 1 AND state='SP' and situation='stopped')
OR (:P2 = 2 AND state='MG' and situation='moving')

关于sql - Firebird 存储过程中的动态 SQL(where),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com