gpt4 book ai didi

sql - Int 数组和 IN 语句

转载 作者:行者123 更新时间:2023-12-02 05:37:42 24 4
gpt4 key购买 nike

如何在 SQL Server 中声明 int 数组?

填写后,我想在IN语句中使用它来检查,我该如何更改我的代码?

declare @mode int =1 
declare @acceptedFormTypeIds table (id int)

case @mode
when 1 then
insert into @acceptedFormTypeIds(id) values (1, 2, 3, 4)
when 2 then
insert into @acceptedFormTypeIds(id) values (1, 3)
when 3 then
insert into @acceptedFormTypeIds(id) values (2, 4)
else
insert into @acceptedFormTypeIds(id) values (1, 2, 3, 4)
end

...

WHERE
tFRM.SendDate between @datefrom and @dateto
and tFRM.TemplateId IN @acceptedFormTypeIds.id

最佳答案

在数据库中,永远不要想到数组。想想集合或表格。

插入语句的结构应该是

insert into @acceptedFormTypeIds(id) values (1), (2), (3), (4)

你可以使用if

if @mode=2
begin
insert into @acceptedFormTypeIds(id) values (1), (3)
end
else
begin
if @mode=3
begin
insert into @acceptedFormTypeIds(id) values (2), (4)
end
else
begin
insert into @acceptedFormTypeIds(id) values (1), (2), (3), (4)
end
end

但是,根据您的使用情况,拥有一个 FormTypeModeAccepted 表可能是值得的。

关于sql - Int 数组和 IN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508617/

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