sql操作,已知多个id怎么用一条命令根据这些id查找出这些id对应的值

 我来答
zxchan1992
2015-10-21 · TA获得超过278个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:233万
展开全部
--不知道你的表结构,我只能这样回答了
--以下id和值不在同一个表,并且数据的存储结构也不同
create table M
(
id int,
name varchar(10)
)
Create Table N1
(
id int,
ids Varchar(10)
)
Create Table N2
(
id int,
id1 int,
id2 int,
id3 int,
id4 int 
)
Create Table N3
(
id int,
name varchar(10),
ids int
)
insert into M values(1,'A')
insert into M values(2,'B')
insert into M values(3,'C')
insert into M values(4,'D')
insert into N1 values(1,'1,2,3')
insert into N1 values(2,'2,3,4')
insert into N2 values(1,1,1,2,2)
insert into N2 values(1,1,2,3,4)
insert into N3 values(1,'A',1)
insert into N3 values(2,'A',2)
insert into N3 values(3,'A',3)
insert into N3 values(4,'B',4)
insert into N3 values(5,'B',2)
insert into N3 values(6,'C',3)
--格式1
--思路,按逗号拆分字符后和M关联,然后按id再拼接name
With CT
As
(  
select N1.id,M.name from N1 
outer apply dbo.f_split(ids,',') A
left join M on A.col=M.id
)
select id,stuff((select ','+name from CT where id=A.id for xml path('')),1,1,'') from  CT A
group by id  
--格式2
--直接4个left join
select N2.id,A.name As A,B.name As B,C.name As C,D.name As D from N2
left join M A on N2.id1=A.id
left join M B on N2.id2=B.id
left join M C on N2.id3=C.id
left join M D on N2.id4=D.id
--格式3
--这个最简单
select N3.id,M.name As M  from N3
left join M on N3.ids=M.id
--以下id和值再同一个表
--如果id是字符串,用id+逗号来判断,否则可能会发生误判
select * from table_name where charindex(id+',','id1,id2,id3,...')>0
--如果id是数值
select * from table_name where id in (1,2,3...)
Rankabc
2015-10-20 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1062万
展开全部
select * from table_name where id in (1,2,3...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2015-10-20 · 超过31用户采纳过TA的回答
知道答主
回答量:111
采纳率:100%
帮助的人:43.3万
展开全部
select * from table where instr('id1,id2,id3,...',id)>0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式