微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

字符串拆分,排序并与表SQL中的另一列进行比较

如何解决字符串拆分,排序并与表SQL中的另一列进行比较

Create Table #temp
(
Change varchar(20),deleted_user_id int,deleted_field_id int,deleted_value   nvarchar (4000),inserted_user_id  int,inserted_field_id int,inserted_value nvarchar (4000),is_difference int,)


insert into #temp values ('UPDATE','1','11','3,2,1,4','1,3,'0')
insert into #temp values ('UPDATE','12','',3','2',2','0')

select * from #temp

我正在使用Microsoft sql Server Management Studio

我正在尝试将删除的值与插入的值进行比较。如果存在差异,则将is_difference列设置为1或仅返回行。

到目前为止,我正在考虑进行字符串拆分。也许使用小编功能。但不太确定如何在单个查询中使用所有这些选项,或者是否有其他选择。任何帮助表示赞赏。预先感谢

解决方法

此查询到目前为止有效。

;with cte as 
(select isnull(deleted_user_id,inserted_user_id) as user_id,isnull(deleted_field_id,inserted_field_id) as field_id,stuff(  
    (  
    SELECT ','+ value FROM STRING_SPLIT (deleted_value,',') group by value order by value FOR XML PATH('')  
    ),1,'') as sorted_deleted_value,inserted_value 
    from #temp ) 
select * from cte where sorted_deleted_value <> inserted_value

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。