sql >> Database teknologi >  >> RDS >> Oracle

SQL - Hvorfor mellemrum mellem tegn, når man sammenligner tegn?

Du forvirrer de forskellige typer karakterer og hvad der sker. Når du udfører:

SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '

Der tilføjes ingen mellemrum "til hver række i SOME_TABLE". Det eneste spørgsmål er bredden af ​​resultaterne. Denne bredde er indstillet af egenskaberne for kolonnerne i SOME_TABLE, ikke af det, der vises i WHERE-sætningen.

Hvis din CUSTOMER_NAME er erklæret som en char(x)-værdi, skal strengen have den længde. Lad os sige, det er char(10) og du tildeler 'Popeye' til det. Værdien har seks tegn, og denne skal på en eller anden måde udfyldes til 10. SQL-standarden skal udfyldes på højre side, hvilket gør værdien 'Popeye ' .

Hvis du vil have strenge med variabel længde, så brug varchar eller varchar2.




  1. vælg alle kolonner med gruppe efter i dvalekriterieforespørgsler

  2. Tæl forskellige værdier

  3. Hvordan får man gennemsnittet af de 'midterste' værdier i en gruppe?

  4. SQLAlchemy forsøger at slette mange til mange sekundære forhold to gange