sql语句将1,2,3字符串转换为int类型

条件:db.idin(charindex(','+ltrim(o.organizationid)+',',(select','+user1.idfromuser1)))其... 条件:db.id in (charindex(','+ltrim(o.organizationid)+',', (select ','+user1.id from user1) ))
其中user1的存储的是varchar类型的字符串类似于1,2,3.
想通过判断db的id是否在user1的id中
展开
 我来答
aoiv
2014-07-12
知道答主
回答量:12
采纳率:0%
帮助的人:16万
展开全部
问题不太明了。

IN 一个集合,这个集合可以是常量如 (1, 2, 3),也可以是个查询如 IN (SELECT id FROM user1)。
如果user1.id是字符串,可以使用CAST转换(数据库也会隐式得转换,不写也可以):
db.id IN (SELECT CAST(id AS int) FROM user1)

你还要IN 在organizationid的话,一个IN是不够的,用OR连起来
db.id IN (SELECT CAST(id AS int) FROM user1)

OR db.id IN (CAST(LTRIM(o.organizationid AS int)))
追问
我的那个user1.id里面存的是字符串是这个样子的:
id
1,2
4,5,6
3,4,5
每个id都由几个数字拼接起来的,用你那个方法报错是这样的:
在将 varchar 值 '1,2,3' 转换成数据类型 int 时失败。
追答
我想你把一组数值常量和一个字符串搞错了,字符串的"1,2,3"只是*一个*字符串而已,IN (1, 2, 3)和IN ( '1,2,3' ) 是不一样的。
day忘不掉的痛
2015-08-10 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223940
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
创建一个函数,把字符串变成表格
CREATE FUNCTION fn_StringSplitTable
(
@str NVARCHAR(MAX),
@split NVARCHAR(10)
)
RETURNS TABLE
AS
RETURN
(
SELECT B.id
FROM
(
SELECT [value] = CONVERT(XML , '<v>' + REPLACE(@str , @split , '</v><v>') + '</v>')
) A
OUTER APPLY
(
SELECT id = N.v.value('.' , 'nvarchar(100)')
FROM A.[value].nodes('/v') N ( v )
) B
)
Go
查询可以为
select * from tb where id IN (SELECT CAST(id AS INT) FROM dbo.fn_StringSplitTable('1,2,3', ','))
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2014-07-12 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:866万
展开全部
用charindex函数判断就好了,你写的判断语句都已经判断了,你的需求不清楚啊
更多追问追答
追问
sql语句我给贴错了,应该是这样的:db.id in (charindex(','+ltrim(user1.organizationid)+',', (select  ','+user1.id from user1) ))
报错是这样的
子查询返回的值不止一个。当子查询跟随在 =、!=、、>= 之后,或子查询用作表达式时,这种情况是不允许的。
追答
所以觉得你的语句很怪啊,charindex语句的用法是charindex() > 0 来判断的,如:
CHARINDEX('Rd',Address) > 0 or CHARINDEX('Road',Address)> 0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式