sql >> Databasteknik >  >> RDS >> Oracle

Hur man delar upp en kommaseparerad sträng i Oracle

baserat på https://blogs.oracle.com/aramamoo/how-to-split-comma-separated-string-and-pass-to-in-clause-of-select-statement :

Först kommer vi att skapa en fråga som delar upp denna kommaseparerade sträng och ger de individuella strängarna som rader.

SQL> select regexp_substr('20.4,12.5,3.5,0.2,0.2','[^,]+', 1, level) from dual
     connect by regexp_substr('20.4,12.5,3.5,0.2,0.2', '[^,]+', 1, level) is not null;


REGEXP_SUBSTR('20.4,1
---------------------
20.4                 
12.5                 
3.5                  
0.2                  
0.2  

Ovanstående fråga itererar genom den kommaseparerade strängen, söker efter kommatecken (,) och delar sedan upp strängen genom att behandla kommatecken som avgränsare. Den returnerar strängen som en rad när den träffar en avgränsare.



  1. MySQL lagrade procedurer

  2. Hur programmerar man en MySQL-utlösare för att infoga rad i en annan tabell?

  3. MariaDB RTRIM() vs RTRIM_ORACLE():Vad är skillnaden?

  4. Hur byter man namn på något i SQL Server som har hakparenteser i namnet?