VARCHAR-Spaltenwerte in SQL aufteilen
In SQL speichert der VARCHAR-Datentyp Zeichenfolgen variabler Länge. Beim Umgang mit VARCHAR-Spalten kann es erforderlich sein, die Spaltenwerte in mehrere Einzelwerte aufzuteilen.
Angenommen, Sie haben eine SQL-SELECT-Anweisung wie diese:
SELECT AD_Ref_List.Value FROM AD_Ref_List WHERE AD_Ref_List.AD_Reference_ID= 1000448
Diese Anweisung gibt alle zurück Werte aus der Spalte „Value“ in der Tabelle „AD_Ref_List“, wobei die Spalte „AD_Reference_ID“ gleich 1000448 ist. Das Ergebnis könnte so aussehen Dies:
Value |
---|
CO,VO |
In diesem Ergebnis enthält die Spalte „Wert“ eine durch Kommas getrennte Liste von Werten. Um die Ergebnisse weiter zu filtern, möchten Sie möglicherweise die Werte in einzelne Zeilen aufteilen, z. B.:
Value |
---|
CO |
VO |
Eine Möglichkeit, dies zu erreichen, ist die Verwendung des IN-Operators wie folgt:
SELECT AD_Ref_List.Value FROM AD_Ref_List WHERE AD_Ref_List.AD_Reference_ID= 1000448 AND AD_Ref_List.Value IN (SELECT xx_insert.XX_DocAction_Next FROM xx_insert WHERE xx_insert_id = 1000283 ) ;
Diese Abfrage gibt jedoch möglicherweise keine Zeilen zurück, da Oracle die Werteliste als einzelne Zeichenfolge und nicht als einzelne Werte behandelt. Um dies zu beheben, können Sie die folgende Technik verwenden:
SELECT r.Value FROM AD_Ref_List r INNER JOIN xx_insert x ON ( ',' || x.XX_DocAction_Next || ',' LIKE '%,' || r.value || ',%' ) WHERE r.AD_Reference_ID = 1000448 AND x.xx_insert_id = 1000283;
Diese Abfrage verwendet den LIKE-Operator, um zu prüfen, ob der Wert aus der AD_Ref_List-Tabelle eine Teilzeichenfolge der Werteliste aus der xx_insert-Tabelle ist. Dadurch wird das gewünschte Ergebnis zurückgegeben, wobei jeder Wert in der Spalte „Wert“ als separate Zeile angezeigt wird.
Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennte VARCHAR-Spaltenwerte in SQL auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!