sql >> Databáze >  >> RDS >> PostgreSQL

Termín syntaxe SQL pro 'WHERE (sloupec1, sloupec2) <(hodnota1, hodnota2)'

Běžným krátkodobým termínem je pouze "Hodnoty řádků" . Nebo "Porovnání hodnot řádku" pro operaci, kterou předvádíte. Tato funkce je ve standardu SQL od SQL-92 (!). Postgres je v současnosti jediným velkým RDBMS, který jej podporuje ve všech aspektech – zejména také s optimální podporou indexů.

Konkrétně výraz (col1, col2) < (1, 2) je jen zkratka pro ROW(col1, col2) < ROW(1, 2) v Postgres.Výraz ROW(col1, col2) se také nazývá konstruktor řádku - stejně jako ARRAY[col1, col2] je konstruktor pole.

Je příhodně krátký pro více upovídaný ekvivalentní výraz:

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

...a Postgres může používat index na (col1, col2) nebo (col1 DESC, col2 DESC) za to.

A výrazně se liší od (!)

col1 < 1 AND  AND col2 < 2

Zvažte příklad:(1,1) ...

Zde je prezentace Markuse Winanda, která podrobně pojednává o funkci stránkování:

„Paginace provedena způsobem PostgreSQL“ na use-the-index-luke.com.

Porovnání hodnot řádků začíná na straně 20. Matice podpory, na kterou jsem odkazoval, je na straně 45.

Nejsem žádným způsobem přidružen k žádnému ze zdrojů, které jsem citoval.



  1. Kdy musím v Oracle SQL použít středník vs lomítko?

  2. Tipy pro zámky čtení/zápisu v závislosti na úrovni izolace transakcí v MSSQL

  3. Funkce vs procedury v Oracle

  4. Cursor For Loop s dynamickým SQL příkazem