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

Cross-Apply と Delete ステートメントを使用した T-SQL

    ここでクロス適用を使用する利点はありません。これを行う簡単なソリューションを次に示します。

    declare @t table(recordid int)
    declare @tableone table(recordid int)
    declare @tabletwo table(recordid int)
    declare @tablethree table(recordid int)
    insert @t values(101),(102),(103),(104),(105),(106)
    
    insert @tableone values(101),(102),(103),(104)
    insert @tablethree values(101),(102)
    
    delete t
    from @t t
    where not exists (select 1 from @tableone where t.recordid = recordid)
    and exists (select 1 from @tableone)
    or not exists (select 1 from @tabletwo where t.recordid = recordid)
    and exists (select 1 from @tabletwo)
    or not exists (select 1 from @tablethree where t.recordid = recordid)
    and exists (select 1 from @tablethree)
    

    結果:

    recordid
    101
    102
    


    1. 毎月の最大日に記録を取得します

    2. MySQL-1つのINSERTステートメントにいくつの行を挿入できますか?

    3. mysqldumpはテーブル'table1'のダンプデータをスキップして失敗します。フィールドがありません

    4. 接続エラー時にODP.NET接続プールをクリアするにはどうすればよいですか?