sql >> Databasteknik >  >> RDS >> Database

Hur man ändrar text till gemener i SQL

Problem:

Du vill ändra lite text till gemener i SQL.

Exempel:

Vår databas har en tabell som heter item med data i följande kolumner:id , code , och wood_type_used . Fallet är inkonsekvent i data i wood_type_used kolumn. Vi vill att alla träsorter ska visas med gemener.

id kod wood_type_used
1 000237PSH Tall
2 000115MCH MAHOGNY
3 000073BTB björk
4 00068WBD wAlnUt
5 00055BSH Björk

Lösning:

Vi använder LOWER() funktion:

SELECT
    code,
LOWER(wood_type_used)
FROM item;

Frågan returnerar objekt med träsorter skrivna med gemener:

kod wood_type_used
000237PSH tall
000115MCH mahogny
000073BTB björk
00068WBD valnöt
00055BSH björk

Diskussion:

När du vill att textdata från din SQL-databas ska visas med gemener, använd LOWER() fungera. Denna funktion tar som argument en sträng eller namnet på en kolumn vars textvärden ska visas med gemener. Den returnerar en version av den ursprungliga textdatan där varje stor bokstav ersätts med motsvarande gemen och resten av tecknen förblir oförändrade.

Men att visa text på ett enhetligt sätt är inte den enda tillämpningen av LOWER() fungera. Du kan också ha nytta av det i skiftlägesokänsliga frågor, det vill säga frågor där det är irrelevant hur textdatan du letar efter ursprungligen är skiftad.

Till exempel, i vår exempeltabell ovan, kanske du vill hitta alla föremål gjorda av björkträ. Eftersom värden för träsorten inte är konsekvent kapslade, fråga bara efter alla rader som har "birch ’ i wood_type_used kolumnen skulle bara returnera en rad, även om två av de listade produkterna uppenbarligen är gjorda av björk. Det är här LOWER() kommer in:

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

En sådan fråga kommer att returnera alla rader med någon form av "björk"-sträng i wood_type_used kolumn, oavsett hur värdena är skiftade i originaldata. Kom ihåg att skriva texten du söker efter med gemener också.


  1. Hur grupperar man tidsstämplar i öar (baserat på godtyckligt gap)?

  2. MariaDB SCHEMA() Förklarat

  3. Hur använder jag alias i where-satsen?

  4. Varför har heltal i databasradtuppel ett 'L'-suffix?