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

Sådan ændres tekst til små bogstaver i SQL

Problem:

Du vil gerne ændre noget tekst til små bogstaver i SQL.

Eksempel:

Vores database har en tabel med navnet item med data i følgende kolonner:id , code , og wood_type_used . Sagen er inkonsekvent i dataene i wood_type_used kolonne. Vi vil gerne have, at alle træsorter vises med små bogstaver.

id kode træ_type_brugt
1 000237PSH Fyr
2 000115MCH MAHOGNY
3 000073BTB birk
4 00068WBD wAlnUt
5 00055BSH Birk

Løsning:

Vi bruger LOWER() funktion:

SELECT
    code,
LOWER(wood_type_used)
FROM item;

Forespørgslen returnerer emnerne med træsorter skrevet med små bogstaver:

kode træ_type_brugt
000237PSH fyr
000115MCH mahogni
000073BTB birk
00068WBD valnød
00055BSH birk

Diskussion:

Når du ønsker, at nogle tekstdata fra din SQL-database skal vises med små bogstaver, skal du bruge LOWER() fungere. Denne funktion tager som argument en streng eller navnet på en kolonne, hvis tekstværdier skal vises med små bogstaver. Det returnerer en version af de originale tekstdata, hvor hvert stort bogstav erstattes af dets tilsvarende små bogstaver, og resten af ​​tegnene forbliver uændrede.

Men at vise tekst på en ensartet måde er ikke den eneste anvendelse af LOWER() fungere. Du kan også finde det nyttigt i forespørgsler uden store og små bogstaver, det vil sige forespørgsler, hvor det er irrelevant, hvordan de tekstdata, du leder efter, oprindeligt er skrevet med store og små bogstaver.

For eksempel, i vores eksempeltabel ovenfor, vil du måske finde alle varer lavet af birketræ. Da værdier af træsorten ikke er konsekvent med hylstre, skal du blot søge efter alle rækker, der har 'birch ’ i wood_type_used kolonne ville kun returnere én række, selvom to af de anførte produkter tydeligvis er lavet af birk. Det er her LOWER() kommer ind:

SELECT *
FROM item
WHERE LOWER(wood_type_used) = ‘birch’;

En sådan forespørgsel vil returnere alle rækker med en form for 'birke'-streng i wood_type_used kolonne, uanset hvordan værdierne er skrevet med store og små bogstaver i de originale data. Husk også at skrive den tekst, du søger efter, med små bogstaver.


  1. Hent en liste over private procedurer/funktioner fra et pakkelegeme

  2. Hvad er forskellen mellem MyISAM og InnoDB?

  3. Giv valg på alle borde, der ejes af en bestemt bruger

  4. Oracle Pl/SQL:Gå gennem XMLTYPE-noder