sql >> Databáze >  >> RDS >> SQLite

Jak Replace() funguje v SQLite

SQLite replace() Funkce nám umožňuje nahradit jeden řetězec (nebo část řetězce) jiným řetězcem.

Funguje to tak, že poskytnete tři argumenty; řetězec, který obsahuje podřetězec, který má být nahrazen, podřetězec v tomto řetězci, který se má nahradit, a řetězec, kterým se má nahradit.

Syntaxe

Syntaxe vypadá takto:

replace(X,Y,Z)

Funkce vrací řetězec vytvořený nahrazením řetězce Z za každý výskyt řetězce Y v řetězci X.

BINARY porovnávací sekvence se používá pro srovnání. Pokud je Y prázdný řetězec, vraťte X beze změny. Pokud Z není původně řetězec, je před zpracováním přetypován na řetězec UTF-8.

Příklad

Zde je jednoduchý příklad k demonstraci.

SELECT replace('Red Sky', 'Red', 'Blue');

Výsledek:

Blue Sky

Pokud druhý argument není nalezen v prvním argumentu, pak se nic nenahradí a vrátí se původní řetězec.

SELECT replace('Red Sky', 'Green', 'Blue');

Výsledek:

Red Sky

Pokud je druhý argument prázdný řetězec, pak se opět nic nenahradí a vrátí se původní řetězec.

SELECT replace('Red Sky', '', 'Blue');

Výsledek:

Red Sky

Ale totéž nelze říci o třetím argumentu. Pokud je to prázdný řetězec (a druhý argument se nachází v prvním argumentu), odstraní z řetězce druhý argument.

SELECT replace('Red Sky', 'Red', '');

Výsledek:

 Sky

To se však nestane, pokud druhý argument nebude v řetězci nalezen.

SELECT replace('Red Sky', 'Blue', '');

Výsledek:

Red Sky

Nahrazení neřetězcem

Pokud třetí argument není řetězec, je před zpracováním přetypován na řetězec UTF-8.

SELECT replace('Red Sky', 'Red', 8);

Výsledek:

8 Sky

Příklad databáze

Zde je příklad, který vezme data z databázové tabulky a nahradí daný řetězec/podřetězec jiným řetězcem.

SELECT 
  ProductName,
  replace(ProductName, 'Widget', 'Car')
FROM Products;

Výsledek:

ProductName     replace(ProductName, 'Widget', 'Car')
--------------  -------------------------------------
Homer's Widget  Homer's Car                          
Peter's Widget  Peter's Car                          
Bob's Widget    Bob's Car                            

  1. Proč CONNECT BY LEVEL v tabulce vrací řádky navíc?

  2. PŘIPOJIT (VYBRAT ... ) ue ON 1=1?

  3. Jak zobrazit aktuální nastavení pro nulový výstup v PostgreSQL (psql)

  4. order by newid() - jak to funguje?