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

JOIN条件でCASEステートメントを使用できますか?

    CASE 式はTHENから値を返します 条項の一部。このように使用できます:

    SELECT  * 
    FROM    sys.indexes i 
        JOIN sys.partitions p 
            ON i.index_id = p.index_id  
        JOIN sys.allocation_units a 
            ON CASE 
               WHEN a.type IN (1, 3) AND a.container_id = p.hobt_id THEN 1
               WHEN a.type IN (2) AND a.container_id = p.partition_id THEN 1
               ELSE 0
               END = 1
    

    戻り値を使って何かをする必要があることに注意してください。 1と比較してください。ステートメントが割り当ての値を返すか、同等性をテストしようとしましたが、どちらもCASEのコンテキストでは意味がありません。 / THEN 句。 (BOOLEANの場合 がデータ型だった場合、同等性のテストは理にかなっています。)



    1. ORA-00947タイプをグローバルに宣言する際に値が不足しています

    2. LOCALTIMESTAMPの例– MySQL

    3. アプリケーションが起動するたびにリソースIDが変更されますか

    4. MariaDBのストレージエンジンオプションの調査