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

Přetypování datového typu Postgres

cast(varchar_col AS int)  -- SQL standard

nebo

varchar_col::int          -- Postgres syntax shorthand

Tyto varianty syntaxe jsou platné (téměř) kdekoli . Druhý může ve zvláštních situacích vyžadovat vnoření závorek:

  • PostgreSQL:Vytvořte index podle délky všech polí tabulky

A první může být vyžadován tam, kde omezení syntaxe povoluje pouze funkční zápis:

  • PostgreSQL – operátor CAST vs ::na tabulkové funkci LATERAL

Existují další dvě varianty:

int4(varchar_col)         -- only works for some type names
int '123'                 -- must be an untyped, quoted string literal

Všimněte si, jak jsem napsal int4 (varchar_col) . To je interní název typu a je pro něj také definována funkce. Nefungovalo by jako integer() nebo int() .

Všimněte si také, že poslední formulář nefunguje pro pole typy. int[] '{1,2,3}' musí být '{1,2,3}'::int[] nebo cast('{1,2,3}' AS int[]) .

Podrobnosti v návodu zde a zde .

Platí pro integer , řetězec se musí skládat z volitelného znaku na začátku (+ /- ) následované pouze číslicemi. Úvodní/koncové prázdné místo je ignorováno.




  1. 5 důvodů, proč je Microsoft Access skvělý pro začínající podniky

  2. Jaké jsou rozdíly mezi seskupeným a neshlukovaným indexem?

  3. Analyzujte řetězec oddělený čárkami a vytvořte IN Seznam řetězců v klauzuli Where

  4. Neočekávaný typ proměnné vrácený Receive-Job