sql >> Databáze >  >> RDS >> Oracle

SQL – Proč vyplňovat mezery při porovnávání znaků?

Pletete si různé typy postav a to, co se děje. Když provedete:

SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '

Žádné mezery se nepřidávají "na každý řádek v SOME_TABLE". Jedinou otázkou je šířka výsledků. Tato šířka je dána vlastnostmi sloupců v SOME_TABLE, nikoli tím, co je uvedeno v klauzuli WHERE.

Pokud je vaše CUSTOMER_NAME deklarováno jako hodnota char(x), musí mít řetězec tuto délku. Řekněme, že je to char(10) a přiřadíte mu „Popeye“. Hodnota má šest znaků a musí být nějakým způsobem doplněna na 10. Standard SQL je umístit na pravou stranu, takže hodnota 'Popeye ' .

Pokud chcete řetězce proměnné délky, použijte varchar nebo varchar2.




  1. laravel skrytá pole pod podmínkou

  2. cx_Oracle nerozpozná umístění instalace softwaru Oracle pro instalaci v systému Linux

  3. Optimální parametr chunksize v pandas.DataFrame.to_sql

  4. PostgreSQL vytvoří nový sloupec s hodnotami podmíněnými jinými sloupci