Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle получава числа с диапазон

  2. org.hibernate.MappingException:Няма съпоставяне на диалект за тип JDBC:2002

  3. Не може да се предаде стойност на низ 1,2 като вход към заявка за оракул

  4. NVL2 функция в Oracle

  5. Бяла книга за статистиката на CBO