首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取主表数据,获取错误

获取主表数据,获取错误
EN

Stack Overflow用户
提问于 2011-12-08 17:19:11
回答 1查看 57关注 0票数 0

我希望从一个与存储在另一个表中的字符串(它是主表userid列的逗号分隔字符串)对应的主表中获取文本值。

我试着

代码语言:javascript
运行
复制
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行转换失败。

如何解决这个问题

EN

回答 1

Stack Overflow用户

发布于 2011-12-08 17:23:05

逗号分隔的nvarchar数据与逗号分离的整数不相同。

您所做的事情类似于:

代码语言:javascript
运行
复制
WHERE 1 IN ("1,2,3")

1integer"1,2,3"string (不能隐式转换)。因此,您正在收到一个错误。

我建议将您的数据规范化,这样就不需要用逗号分隔值了。

从长远来看,这将为你省下很多问题。

但是,如果您希望继续使用CSV,您可能会发现这篇文章很有用:

http://www.nigelrivett.net/SQLTsql/InCsvStringParameter.html

具体检查fn_ParseCSVString部件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8434941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档