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

CTEでIFEXISTSを使用する

    MSDNから

    このように書き直すことができます

    WITH ADMISSION_OUTSIDE AS 
    (   .....
    .....
    )
    SELECT 'OK' WHERE EXISTS (SELECT * FROM ADMISSION_OUTSIDE)
    UNION ALL
    SELECT 'NOT OK' WHERE NOT EXISTS (SELECT * FROM ADMISSION_OUTSIDE)
    

    これがデモです

    ;WITH CTE AS
    (
    SELECT 1 as a WHERE 1=0
    )
    SELECT 'OK' WHERE EXISTS (SELECT * FROM CTE)
    UNION ALL
    SELECT 'NOT OK' WHERE NOT EXISTS (SELECT * FROM CTE)
    

    結果: NOT OK

    ;WITH CTE AS
    (
    SELECT 1 as a WHERE 1=1
    )
    SELECT 'OK' WHERE EXISTS (SELECT * FROM CTE)
    UNION ALL
    SELECT 'NOT OK' WHERE NOT EXISTS (SELECT * FROM CTE)
    

    結果: OK



    1. Oracle WITH CLAUSEが機能していませんか?

    2. バッチファイルからOracleSQLファイルへのパラメータの受け渡し

    3. サブクエリを使用したmysql更新クエリ

    4. MyBatisでのレイジーフェッチ