gpt4 book ai didi

使用 varchar 和 bigint 的 SQL Server IN 运算符

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

我在使用存储过程使用 SQL IN 运算符搜索并返回匹配 ID 列表时遇到一些问题。我认为这个问题与数据类型有关。

参数作为字符串“32,1,5,78,43”传递到存储过程 - 需要将其作为 IN 运算符传递到查询中以搜索字段 Column1。 Bigint 中该字段的数据类型。

DECLARE @TEST varchar(1000)
SET @TEST = REPLACE('32,1,5,78,43', '''','')

SELECT Column1, Column2
FROM Table
WHERE Column1 IN(@TEST)

尝试从字符串中删除引号似乎不起作用,并且我收到一条错误消息,提示“将数据类型 varchar 转换为 bigint 时出错。”

在没有存储过程的情况下运行代码,并将值直接放入 IN 运算符(不带引号)中,然后可以正常工作并返回正确的值。例如

SELECT Column1, Column2 
FROM Table
WHERE Column1 IN(32,1,5,78,43)

请有人告诉我这里哪里出了问题?

最佳答案

您也可以使用动态sql来实现:

DECLARE @TEST varchar(1000)
DECLARE @SQLQuery AS NVARCHAR(500)

SET @TEST = '32,1,5,78,43'

SET @SQLQuery = 'SELECT Column1, Column2 FROM Table WHERE Column1 IN('+ @TEST +')'
EXECUTE(@SQLQuery)

关于使用 varchar 和 bigint 的 SQL Server IN 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15615889/

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