sql >> Database >  >> RDS >> Oracle

SQL - Waarom spaties invullen bij het vergelijken van tekens?

Je verwart de verschillende soorten karakters en wat er gebeurt. Wanneer u uitvoert:

SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '

Er worden geen spaties toegevoegd "aan elke rij in SOME_TABLE". De enige vraag is de breedte van de resultaten. Deze breedte wordt bepaald door de eigenschappen van de kolommen in SOME_TABLE, niet door wat wordt weergegeven in de WHERE-component.

Als uw CUSTOMER_NAME is gedeclareerd als een char(x)-waarde, moet de tekenreeks die lengte hebben. Zeg, het is char(10) en je wijst er 'Popeye' aan toe. De waarde heeft zes tekens en dit moet op de een of andere manier worden opgevuld tot 10. De SQL-standaard is om aan de rechterkant op te vullen, waardoor de waarde 'Popeye ' .

Als je strings van variabele lengte wilt, gebruik dan varchar of varchar2.




  1. Bouw een XML met XMLELEMENT - ORACLE SQL 11g-query

  2. PHP - Beveiligde ledenpagina's met een inlogsysteem

  3. Postgresql groeperen op voor meerdere regels

  4. Overlappende perioden uitsluiten in de tijdaggregatiefunctie