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

Sådan udskiftes en del af en streng i SQL

Problem:

Du vil gerne erstatte en del af en streng med en anden streng.

Eksempel:

Vores database har en tabel med navnet investor med data i følgende kolonner:id , company og phone .

id virksomhed telefon
1 Stort marked 123-300-400
3 The Sunny Restaurant 123-222-456
4 Min bank 123-345-400

Vi vil gerne ændre telefonnummerformatet for hver virksomhed ved at erstatte bindestregen med et mellemrum.

Løsning:

SELECT REPLACE( phone, '-', ' ' ) as new_phone
FROM investor;

Forespørgslen returnerer en liste over telefonnumre med mellemrum i stedet for bindestreger som skilletegn:

ny_telefon
123 300 400
123 222 456
123 345 400

Diskussion:

Hvis du gerne vil erstatte en understreng med en anden streng, skal du blot bruge REPLACE fungere. Denne funktion tager tre argumenter:

  • Strengen der skal ændres (som i vores tilfælde var en kolonne).
  • Den understreng, der skal erstattes.
  • Den streng, som den angivne understreng skal erstattes med.

I det næste eksempel erstatter vi adjektivet 'Big' i company kolonne med 'Small'.

SELECT REPLACE( company, 'Big', 'Small' ) as new_company
FROM investor
WHERE id = 1;

Denne forespørgsel viser det nye navn på virksomheden for investoren med id = 1 .

nyt_firma
Lille marked

  1. AWS RDS:"SQLSTATE[22001] - Data for lange til kolonne" ved hjælp af MariaDB 10.2

  2. pyodbc - meget langsom bulk indsættelseshastighed

  3. Bliver den primære nøgle automatisk indekseret i MySQL?

  4. Hvad er det korrekte indeks for at forespørge strukturer i arrays i Postgres jsonb?