PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

SQL синтактичен термин за 'WHERE (col1, col2) <(val1, val2)'

Често срещаният краткосрочен термин е просто „Стойности на редове“ . Или „Сравнение на стойностите на редове“ за операцията, която демонстрирате. Тази функция е в SQL стандарта от SQL-92 (!). Понастоящем Postgres е единствената голяма RDBMS, която я поддържа във всички аспекти – особено с оптимална поддръжка на индекси.

По-специално, изразът (col1, col2) < (1, 2) е просто стенография за ROW(col1, col2) < ROW(1, 2) в Postgres. Изразът ROW(col1, col2) се нарича още конструктор на редове - точно като ARRAY[col1, col2] е конструктор на масив.

Той е удобно съкратен за по-подробния, еквивалентен израз:

col1 < 1 OR (col1 = 1 AND col2 < 2)

... и Postgres могат да използват индекс на (col1, col2) или (col1 DESC, col2 DESC) за това.

И забележително различен от (!)

col1 < 1 AND  AND col2 < 2

Помислете за пример:(1,1) ...

Ето презентация на Маркус Уинанд, която обсъжда подробно функцията за пагинация:

„Пагинацията е извършена по начина на PostgreSQL“ на use-the-index-luke.com.

Сравнението на стойностите на редовете започва на страница 20. Матрицата за поддръжка, която споменах, е на страница 45.

По никакъв начин не съм свързан с нито един от източниците, които цитирах.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дизайн на база данни за създаване на таблици в движение

  2. Postgresql Текуща клеймо за време при актуализиране

  3. Създаване на нови модули с помощта на PostgreSQL Create Extension

  4. Проста криптирана аритметична библиотека (SEAL) и променливата seal::Ciphertext

  5. Изчисляване на кумулативна сума в PostgreSQL