gpt4 book ai didi

sql - 将字符串中的 int 转换为 T-SQL 中的整数

转载 作者:行者123 更新时间:2023-12-02 03:40:32 25 4
gpt4 key购买 nike

我需要将字符串转换为整数,但出现类型错误。

declare @stringinteger nvarchar(255) null;
set @stringinteger='1,2,3,4'

select *
from user
where id in (@stringinteger)

我得到的错误:

Conversion failed when converting the nvarchar value '1,2,3,4' to data type int

最佳答案

您有两种方法来处理此问题,动态 SQL 和拆分字符串。

对于后者,可以使用string_split()(SQL Server 2016引入)或者类似的函数(网上都有,google“string split sql server”):

select *
from user
where id in (select cast(value as int) from string_split(@stringinteger, ',')) ;

动态 SQL 如下所示:

declare @stringinteger nvarchar(255) null;
set @stringinteger = '1,2,3,4';

declare @sql nvarchar(max);
set 'select *
from user
where id in (@stringinteger)';

set @sql = replace(@sql, '@stringinteger', @stringinteger);

exec sp_executesql @sql;

请注意,在 SQL Server 中,您应该始终为字符类型提供长度。如果您将其遗漏,则默认值会因上下文而异——您的代码可能无法达到您的预期。

关于sql - 将字符串中的 int 转换为 T-SQL 中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48786186/

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