跪求大神解决 not in 的问题。

zhi2xuanxuan 2013-03-04 09:25:14
表A内有字段ID和QSDW(签收单位),数据如下
ID QSDW
1 1,2,3,4

表B内有字段ID和QSID(签收单位ID),数据如下
ID QSID
1 1
1 2
现在要求查询出未签收的单位ID,即查询出 3和4
...全文
196 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhi2xuanxuan 2013-03-04
  • 打赏
  • 举报
回复
感谢 szm341 ,问题解决。
szm341 2013-03-04
  • 打赏
  • 举报
回复


select * into #a from
(
select 1 id,'1,2,3,4'QSDW
)a

select * into #b from
(
select 1 id,1 QSID
union all select 1,2
)a


select  a.id,b.Col2  
from (
select id,convert(xml,'<row><b>'+rtrim(replace(QSDW,',','</b><b>'))+'</b></row>') as Col2 from #a)a
outer apply (select Col2=C.v.value('.','nvarchar(100)') from a.COl2.nodes('/row/b')C(v))b 
where b.col2 not in (select QSID from #b)

/*
id          Col2
----------- 
1           3
1           4

(2 行受影响)

*/

快溜 2013-03-04
  • 打赏
  • 举报
回复
表A QSDW字段按逗号分隔开来在查询
zhi2xuanxuan 2013-03-04
  • 打赏
  • 举报
回复
引用 1 楼 Haiwer 的回复:
设计有问题,两个表都用表b的格式不就没有这个麻烦了吗
表A是新闻表,QSDW是这个信息需要签收的单位ID,怎么能弄成B表的结构。
昵称被占用了 2013-03-04
  • 打赏
  • 举报
回复
设计有问题,两个表都用表b的格式不就没有这个麻烦了吗

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧