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

SQLでカンマ区切りの値を比較する

    これはあなたが探しているものですか?

    正誤結果

    -- 両方の CSV セットに存在する値のみに一致SELECT T1.[Item], CASE WHEN T2.[Item] IS NULL THEN 0 ELSE 1 END AS [Match] FROM [dbo].[Split] ('val1,val2,val3', ',') AS T1 LEFT JOIN [dbo].[Split]('val3,val4', ',') AS T2 on T1.[Item] =T2.[Item]  

    返品

    アイテム Matchval1 0val2 0val3 1  

    真の一致のみ

    -- 両方の CSV セットに存在する値のみに一致しますSELECT T1.[Item] FROM [dbo].[Split]('val1,val2,val3', ',') AS T1 INNER JOIN [dbo ].[Split]('val3,val4', ',') AS T2 on T1.[Item] =T2.[Item]  

    返品

    Itemval3  

    分割機能

    CREATE FUNCTION [dbo].[Split] ( @s VARCHAR(max), @split CHAR(1))RETURNS @temptable TABLE ([Item] VARCHAR(MAX)) ASBEGIN DECLARE @x XML SELECT @ x =CONVERT(xml,'' + REPLACE(@s,@split,'') + ''); INSERT INTO @temptable SELECT [Value] =T.c.value('.','varchar(20)') FROM @X.nodes('/root/s') T(c);RETURNEND;  

    1. MySQLで列の最大値を持つ行を選択するにはどうすればよいですか?

    2. 奇数のINNERJOIN構文とカプセル化

    3. JDBC Postgres Driverには、データベースに接続するようにclient_encodingを設定する方法がありますか?

    4. SQLサーバーの接続タイムアウト