sqlserver
表 id (bigint) upIdList(nvarchar)
行: 1 2,3,4
2 2,3,2
求查询其中upIdList有重复id的纪录,比如目前第二行就是有重复的
其实就是要把upIdList拆分,看里面的逗号分隔的ID是否有重复的
有十几万数据量。。。
http://www.cnblogs.com/aierong/archive/2008/11/19/sqlserver_split.html
如果要全部查出来效率很低,最好事重新构建一下表结构。
只能去遍历十几万条数据出来。
或者你知道哪几个id有重复的,用select
len(upIdList)-len(
replace
(upIdList,
@替换字符
, @替换字符+'-'
)) 如果大于等于2就表示有多个。这样也能直接查出来,重复id小效率就高一点
select id AS 编号,[dishesName] AS 菜名
from [dbo].[CB_Dishes]
where [dishesName] in (select [dishesName] from [dbo].[CB_Dishes] group by [dishesName] having count(1) >= 2)
你的答案和我的题目有半毛钱关系么?
自己写个函数呗,数据量不大的话,写函数,拆开判断吧,数据量大我也想问个答案