sql >> データベース >  >> RDS >> Sqlserver

セル SQL Server の重複値を削除する

    これを試してください。

    CREATE FUNCTION STR_Func (@Str AS VARCHAR(100))
    RETURNS VARCHAR(Max)
    AS
      BEGIN
          DECLARE @count   INT,
                  @tempstr VARCHAR(100)='',
                  @nLength INT,
                  @outstr  VARCHAR(100)=''
    
          SET @count=1
          SET @Str = Replace(@Str, '/', '')
          SET @nlength = Len(@Str)
    
          WHILE ( @count < @nLength )
            BEGIN
                SET @[email protected] + Substring(@Str, 1, 1)
                SET @Str=Replace(@Str, Substring(@Str, 1, 1), '')
                SELECT @outstr = @outstr + RIGHT(@tempstr, 1) + '/'
                SET @[email protected] + 1
            END
    
          RETURN LEFT(@outstr, Len(@outstr) - 1)
      END 
    
    select dbo.STR_Func('B/A/C/A')
    

    出力: B/A/C

    重複を削除したい場合で、順序を気にしない場合は、これを試してください。

    DECLARE @code  VARCHAR(100)='B/A/C/A',
            @code1 VARCHAR(100)=''
    
    
    SELECT @code1 += '/' + splitrow
    FROM   (SELECT DISTINCT Split.a.value('.', 'VARCHAR(100)') splitrow
            FROM   (SELECT Cast ('<M>' + Replace(@code, '/', '</M><M>') + '</M>' AS XML) AS Data) AS A
                   CROSS APPLY Data.nodes ('/M') AS Split(a)) b
    
    SELECT RIGHT(@code1, Len(@code1) - 1) 
    

    アウトプット :A/B/C



    1. PostgreSQLからのストリーム行(フェッチサイズ付き)

    2. Javaで接続文字列パラメータを保持するための設定ファイル

    3. メモリ内にフォームを生成する方法を学ぶ(はい、あなたはその権利を聞いた)

    4. 2つ以上のテーブルでLEFTJOINを実行するにはどうすればよいですか?