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

コンマでSQLパラメータを分割する

    次のようなものを試すことができます

    --Split
    DECLARE @textXML XML
    DECLARE @data NVARCHAR(MAX), 
            @delimiter NVARCHAR(5)
            
    SELECT  @data = 'Main Stream , Premium',
            @delimiter = ','
            
    SELECT    @textXML = CAST('<d>' + REPLACE(@data, @delimiter, '</d><d>') + '</d>' AS XML)
    SELECT  T.split.value('.', 'nvarchar(max)') AS data
    FROM    @textXML.nodes('/d') T(split)
    

    これを一時テーブルに格納するか、IN 句で使用することができます。

    @Hoy コメントの場合

    nodes() メソッド (xml データ型) を見ることができます

    また、xml データ型メソッド もご覧ください。

    その後、次のように使用できます

    select * 
    FROM    sales  
    where   myCategory IN   (
                                SELECT  T.split.value('.', 'nvarchar(max)')
                                FROM    @textXML.nodes('/d') T(split)
                            )
    


    1. MySQLは、table1への挿入時にtable2に行を自動挿入します

    2. AndroidはPHPなしでMySQLに直接接続できますか?

    3. Access2016で空のデータベースを作成する方法

    4. 3つの1対多のテーブルからネストされたJSON