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

SQL-列が最も一致する行を返します

    そのために関数rank()を使用できます:

    SQLFiddle

    select name, color1, color2, color3, prize 
      from (
        select t.*, rank() over (order by decode(color1, 'Red', 1, 0) 
            + decode(color2, 'Blue', 1, 0) + decode(color3, 'Green', 1, 0) desc) rnk
          from t)
      where rnk = 1
    

    これにより、最も一致する1つまたは複数の行が返されます。



    1. VB.netでSQLの文字列をエンコードする方法

    2. mysql:select max(score)は関連する行データを返しません

    3. 四半期から期間までのMySQLグループ

    4. MySQL/PHPで表示されるレコードを繰り返さないでください