将整数列转换为字符型并与字符串比较

8
我该如何将整数列表与SQL Server中的整数列进行比较?例如,我有一个名为statusidint列。我想要获取statusid1,4,8,9的结果。我将所有这些整数存储在字符串中,并像下面一样操作列statusid,但是出现了错误。该字符串可以硬编码或作为参数传入。
where Cast(statusid as varchar) in ('1,4,8,9');

请提供解决方案。

我把所有这些整数都保存在字符串中,你看到问题了吗?使用带有外键的表格来解决。 - Tim Schmelter
你的数字字符串来自哪里? - user1945782
@Westie:这是一个参数。 - Rajaram Shelar
请查看这个问题 - user1945782
请查看转换函数:http://msdn.microsoft.com/zh-cn/library/a87d0850-c670-4720-9ad5-6f5a22343ea8 - Art
2个回答

14

由于数字被转换为字符串,IN 子句中的值应该用单引号括起来

where Cast(statusid as varchar(20)) in ('1','4','8','9');

谢谢你的回答。我正在提取字符串中的所有整数。这里该如何提取? - Rajaram Shelar
你能更详细地解释一下,获取字符串中的所有整数吗? - John Woo
我想在整数值的集合中进行搜索,例如1、2、5等。因此,我将所有所需数字(1、2、5等)保存在一个字符串中,如“1,2,5”,并希望像where Cast(statusid as varchar) in ('1,2,5');这样进行比较。 - Rajaram Shelar
不幸的是,你需要做一些额外的工作。你需要创建一个用户定义函数,将“'1,2,5'”分解成几个部分,以便可以将每个值与整数列表进行比较。 - John Woo

0
WHERE statusid 
IN (1, 4, 8, 9);

我认为这个解决方案可能取决于eraj从哪里获取他的数字列表——对我来说,eraj的问题似乎是不完整的。 - user1945782

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接