我希望从一个与存储在另一个表中的字符串(它是主表userid列的逗号分隔字符串)对应的主表中获取文本值。
我试着
select maritialtype from tblmastermaritialstatus where MaritalStatusId in(select MaritalStatusId from tblPartnerBasicDetail where userid=1)
maritalstatusid
in tblPartnerBasicDetail
是一个类似于1,2,3
的字符串
我搞错了
将varchar值' 1,2,3‘转换为数据类型tinyint时,
Msg 245、级别16、状态1、第1行转换失败。
如何解决这个问题
发布于 2011-12-08 17:23:05
逗号分隔的nvarchar数据与逗号分离的整数不相同。
您所做的事情类似于:
WHERE 1 IN ("1,2,3")
1
是integer
,"1,2,3"
是string
(不能隐式转换)。因此,您正在收到一个错误。
我建议将您的数据规范化,这样就不需要用逗号分隔值了。
从长远来看,这将为你省下很多问题。
但是,如果您希望继续使用CSV,您可能会发现这篇文章很有用:
http://www.nigelrivett.net/SQLTsql/InCsvStringParameter.html
具体检查fn_ParseCSVString
部件
https://stackoverflow.com/questions/8434941
复制相似问题