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

WHERE句でCOALESCEを正しく使用する

    ROW_NUMBERを使用できます ここで優先順位を付けて必要なものを選択します:

    WITH cte AS (
        SELECT f.*, ROW_NUMBER() OVER (ORDER BY DECODE(ITEM_NO, 'A15354', 1,
                                                                'CURR_NOT_IN_TABLE', 2,
                                                                'GR0013', 3,
                                                                'GUOIUW', 4, 5)) rn
        FROM fruit f
        WHERE spoiled = 'Y'
    )
    
    SELECT ITEM_NAME
    FROM cte
    WHERE rn = 1;
    

    ここでの考え方は、台無しにされたアイテムごとに1から5までの優先順位を割り当てることです。 ROW_NUMBERを使用します 常に1が利用可能な最高の優先度で始まるシーケンスを生成します。



    1. MySQLスクリプトの実行を中止する方法(おそらくエラーが発生します)?

    2. ゼロ/0の結果をCOUNT集計に含める方法は?

    3. ApacheSparkの主キー

    4. LaravelとMySQLを使用して巨大なレコードを取得するにはどうすればよいですか?