gpt4 book ai didi

sap-ase - sybase存储过程中的动态where条件

转载 作者:行者123 更新时间:2023-12-02 18:50:54 26 4
gpt4 key购买 nike

我将where子句语句存储在数据库表中,之后我在select语句中获取和使用。

这是我的 sybase 查询,

"INSERT table(RUN_ID,RUN_DATE,GRGR_ID,SGSG_ID,COLUMN_NAME,ERROR_CODE)SELECT @pnRunId,getdate(),GRGR_ID,SGSG_ID,@COLUMN_NAME,@ERROR_CODE from table1_exct where + @WHERE_CLAUSE"

@WHERE_CLAUSE = '@IKA_COLUMN_NAME IS NOT NULL'

请帮助我如何实现这一目标。

最佳答案

我感觉您可以插入 where 子句,但不知道如何运行它们。

这会很难,但并非不可能。您必须使用游标或循环在 VARCHAR 中构建一段 Sql。

declare @Sql VARCHAR(2000)

select @Sql = 'INSERT table(RUN_ID,RUN_DATE,GRGR_ID,SGSG_ID,COLUMN_NAME,ERROR_CODE)SELECT @pnRunId,getdate(),GRGR_ID,SGSG_ID,@COLUMN_NAME,@ERROR_CODE from table1_exct where '

while 1 = 1
begin
declare @claus VARCHAR(200)
SET ROWCOUNT 1
SELECT @claus = where_clause from some_table
select @sql = @sql + @claus
delete some_table where where_clause = @claus
set rowcount 0
end

这有两件事需要考虑 - 它没有为第一个和后续子句提供 WHERE 和 AND (​​我相信你可以做到这一点),并且它会从源中删除你的 where 子句(你可以得到首先将它们全部放入临时选项卡中以解决这个问题。)

如果您的子句都在同一列上,您可以在列中包含一个 LIKE 表达式列表,并使用 LIKE 运算符连接到该列表 - 这很方便。

无论如何,在上面的最后,运行sql:

执行(@Sql)

关于sap-ase - sybase存储过程中的动态where条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135173/

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