有一个字段,一部分内容重复
 
Create Table #tmp(aa int,bb nvarchar(200))
go
Insert #tmp valus(1,'广东省深圳市深圳火车站深圳火车站')  -- 这行有重复的
Insert #tmp valus(2,'北京市海淀区委')
Insert #tmp valus(3,'广东省深圳市广东省深圳市火车站')  -- 这行有重复的
Insert #tmp valus(4,'我家住在黄土高坡')
Insert #tmp valus(5,'湖南省长沙市万家丽路123号万家丽路123号')  -- 这行有重复的
不需要列出是什么内容重复了,只需要查询出是哪些行资料中有重复的。

解决方案 »

  1.   

    这个比较麻烦。可能需要使用到游标,然后使用循环检测每个字符串。
    这是一个字符串的,楼主可以把这个封装为一个函数
    declare @s varchar(100),@i int,@j int, @s1 varchar(100)
    set @s='湖南省长沙市万家丽路123号万家丽路123号'
    set @i=1while (@i<len(@s) )
    begin
    set @j=2
    while(@j<len(@s))
    begin
    set @s1=substring(@s,@i,@j)
    print @s1
    if(charindex(@s1,@s,@i+1)>0)
    begin
      print '该字符串有重复'
    end
    else 
    begin
      set @j=@j+1
    end
    end
    set @i=@i+1
    end或者使用游标取出每一行的数据,然后进行检测
      

  2.   

    Insert #tmp valus(6,'嘻嘻哈哈')--这个算不算? 
      

  3.   


    Create Table Test3(aa int,bb nvarchar(200))
    go
    Insert INTO Test3 values(1,'广东省深圳市深圳火车站深圳火车站') -- 这行有重复的
    Insert INTO Test3 values(2,'北京市海淀区委')
    Insert INTO Test3 values(3,'广东省深圳市广东省深圳市火车站') -- 这行有重复的
    Insert INTO Test3 values(4,'我家住在黄土高坡')
    Insert INTO Test3 values(5,'湖南省长沙市万家丽路123号万家丽路123号') -- 这行有重复的
    GOCREATE FUNCTION CheckString(@str nvarchar(200))  
     RETURNS integer
      AS
        BEGIN
    DECLARE @Length INT
    DECLARE @Point INT
    DECLARE @Substring NVARCHAR(100)
    DECLARE @SubPoint INT
    DECLARE @Gap INT
    DECLARE @DoHave INT
    DECLARE @StrTemp NVARCHAR(100)SET @Point = 1
    SET @Gap = 5
    SET @DoHave = 0
    SET @Length = LEN(@Str)WHILE @Gap + @Point <= @Length
    BEGIN
    SET @StrTemp = @Str
    WHILE @Point + @Gap <= @Length
    BEGIN
    SET @Substring = SUBSTRING(@Str,@Point,@Gap)
    SET @StrTemp = REPLACE(@Str,@Substring,'')
    IF LEN(@StrTemp) < @Length - @Gap
    BEGIN
    SET @DoHave = 1
    SET @Point = @Length
    END
    SET @Gap = @Gap + 1
    END
    SET @Point = @Point + 1
    SET @Gap = 5
    ENDRETURN @DoHaveEND
    SELECT * FROM Test3 WHERE dbo.CheckString(bb) > 0
    前提是以5字为例,“我不知道我不知道我”不算重复