如何高效能拆分一个字段为多行
如何高效能拆分一个字段为多行 我本意是将表中的一个字段拆分成多行,例如aaa,bbb拆分为 aaa bbb 现在测试如下: [sql] with t1 as ( select 3 c1,eee,fff,ggg c2 from dual UNION ALL select 2 c1,ccc,ddd c2 from dual UNION ALL SELECT 1 c1,aaa,bbb c2 F
如何高效能拆分一个字段为多行
我本意是将表中的一个字段拆分成多行,例如'aaa,bbb'拆分为
'aaa'
'bbb'
现在测试如下:
[sql]
with t1 as
(
select 3 c1,'eee,fff,ggg' c2 from dual UNION ALL
select 2 c1,'ccc,ddd' c2 from dual UNION ALL
SELECT 1 c1,'aaa,bbb' c2 FROM dual
)
select c1,LEVEL,replace(regexp_substr(c2,'[^,]+',1,level),',',' ') c2
from t1
connect BY level
order by c1,level
www.2cto.com
返回结果如下:
[sql]
C1 LEVEL C2
1 1 aaa
1 2 bbb
1 2 bbb
1 2 bbb
2 1 ccc
2 2 ddd
2 2 ddd
2 2 ddd
3 1 eee
3 2 fff
3 2 fff
3 2 fff
3 3 ggg
3 3 ggg
3 3 ggg
3 3 ggg
3 3 ggg
3 3 ggg
3 3 ggg
3 3 ggg
3 3 ggg
www.2cto.com
--======================================================
看起来connect by之后产生了大量重复数据,于是加入distinct后取得正确数据。
反思:
我构造的测试数据仅仅只有三行,最长的拆分资料仅3段'eee,fff,ggg',却产生了21笔资料。如果测试数据增多,或者需拆分的段
数量增多,那么connect by产生的数据将是海量的。
用此种方法实际处理生产库数据时,问题马上显现出来,仅17笔资料,最长拆分字段为8段,竟然产生了738万笔资料,尽管我使用
了distinct,依然慢的很。
解决方案:用Join方式取代connect by方式
[sql]
with t1 as
(
select 3 c1,'eee,fff,ggg' c2 from dual UNION ALL
select 2 c1,'ccc,ddd' c2 from dual UNION ALL
SELECT 1 c1,'aaa,bbb' c2 FROM dual
)
SELECT c1,
substr(t.ca,
instr(t.ca, ',', 1, d.lv) + 1,
instr(t.ca, ',', 1, d.lv + 1) -
(instr(t.ca, ',', 1, d.lv) + 1)) AS d
FROM (SELECT c1,
',' || c2 || ',' AS ca,
length(c2 || ',') - nvl(length(REPLACE(c2, ',')), 0) AS cnt
FROM t1) t,
(select rownum lv from
(select max(length(c2 || ',') - nvl(length(REPLACE(c2, ',')), 0)) mlc from t1)
connect by level
)d
WHERE d.lv
ORDER BY c1
www.2cto.com
结论:
对于表资料只有一笔的时候,用connect by一般不会有什么问题。但如果表中资料是多笔,则connect by会产生海量的重复资料。
用join方式可解决此类问题。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Schneller Einstieg: JSON-Array-Zusammenführungs- und Aufteilungstechniken in Java In der modernen Softwareentwicklung sind Datenformat und -übertragung immer wichtiger geworden. Unter diesen ist JSON (JavaScriptObjectNotation) ein häufig verwendetes Datenformat, das sich besonders für Front-End- und Back-End-Interaktion und Datenspeicherung eignet. In der Java-Entwicklung müssen wir uns häufig mit JSON-Objekten und JSON-Arrays befassen. In diesem Artikel wird erläutert, wie Sie JSON-Arrays in Java zusammenführen und aufteilen, sowie Tipps und Beispiele für die Implementierung dieser Vorgänge.

Wie verwende ich PHPZipArchive, um mehrere komprimierte Pakete zusammenzuführen und aufzuteilen? Überblick: Während des Entwicklungsprozesses müssen wir manchmal mehrere komprimierte Pakete zu einem zusammenführen oder ein komprimiertes Paket in mehrere aufteilen. PHP bietet die ZipArchive-Erweiterung, um diese Vorgänge einfach durchzuführen. In diesem Artikel wird erläutert, wie Sie mit PHPZipArchive mehrere komprimierte Pakete zusammenführen und aufteilen. Mehrere Archive zusammenführen Zuerst müssen wir ein neues Archiv erstellen und es öffnen. Dann muss die Schleife durchlaufen werden

Wie sind die Beschäftigungsaussichten der klinischen Pharmazie an der Harbin Medical University? Obwohl die Beschäftigungssituation im Land nicht optimistisch ist, haben Absolventen der Pharmazie immer noch gute Beschäftigungsaussichten. Insgesamt ist das Angebot an Pharmaabsolventen geringer als die Nachfrage. Pharmaunternehmen und Pharmafabriken sind die Hauptkanäle für die Aufnahme solcher Absolventen. Auch die Nachfrage nach Talenten in der Pharmaindustrie wächst stetig. Berichten zufolge hat das Angebot-Nachfrage-Verhältnis für Doktoranden in den Hauptfächern Pharmazeutische Präparate und Naturmedizinische Chemie in den letzten Jahren sogar 1:10 erreicht. Beschäftigungsrichtung des Hauptfachs „Klinische Pharmazie“: Nach dem Abschluss können Studierende des Hauptfachs „Klinische Medizin“ in medizinischen und Gesundheitsabteilungen, in der medizinischen Forschung und anderen Abteilungen in der medizinischen Behandlung, Prävention, medizinischen Forschung usw. tätig werden. Beschäftigungspositionen: Medizinischer Vertreter, Pharma-Vertriebsmitarbeiter, Vertriebsmitarbeiter, Vertriebsleiter, Regionaler Vertriebsleiter, Investmentmanager, Produktmanager, Produktspezialist, Krankenpfleger

PHP ist eine in der Website-Entwicklung weit verbreitete Skriptsprache. Für Entwickler ist es oft notwendig, festzustellen, ob ein Feld leer ist. In PHP kann mit einigen einfachen Methoden festgestellt werden, ob ein Feld leer ist. In diesem Artikel erfahren Sie, wie Sie feststellen können, ob ein Feld in PHP leer ist, und stellen spezifische Codebeispiele als Referenz bereit. In PHP können Sie normalerweise die Funktion empty() oder isset() verwenden, um festzustellen, ob ein Feld leer ist. Als nächstes stellen wir die Verwendung dieser beiden Funktionen vor. Verwenden Sie die Funktion empty()

NoSuchFieldError in Java – Lösung für das nicht gefundene Feld Java ist eine höhere Programmiersprache, die häufig in Unternehmensanwendungen und der Datenverarbeitung im großen Maßstab verwendet wird. Während des Entwicklungsprozesses von Java können Fehler wie NoSuchFieldError auftreten. Dieser Fehler bedeutet, dass die JVM das erforderliche Feld zur Laufzeit nicht finden kann. In diesem Artikel werfen wir einen tieferen Blick auf NoSuchFieldError und wie man es beheben kann. Was ist NoSuchFieldE?

Ein MySQL-Feld ist eine Spalte eines bestimmten Typs und einer bestimmten Länge in einer MySQL-Datenbanktabelle, die zum Speichern von Daten verwendet wird. In MySQL muss jedes Feld einen bestimmten Datentyp haben, darunter Ganzzahlen, Gleitkommazahlen, Zeichenfolgen, Datumsangaben und Uhrzeiten.

Kürzlich haben einige Freunde berichtet, wie man Win10-Bilddateien herunterlädt. Da es so viele Bilddateien auf dem Markt gibt, was soll ich tun, wenn ich eine normale Datei zum Herunterladen finden möchte? Heute hat Ihnen der Herausgeber den Link zum Herunterladen des Bildes und die detaillierten Lösungsschritte bereitgestellt. Schauen wir uns diese gemeinsam an. Win10-Image-Schnelldownload und Installations-Tutorial-Download-Link >>> System Home Ghostwin101909-Image 64-Bit-Version v2019.11<<<>>>Win10-Image 64-Bit v2019.07<<<>>>Win10-Image 32-Bit v2019. 07<< <1. Suchen Sie im Internet

So bereinigen Sie den temporären Ordner. Während wir den Computer verwenden, sammeln sich nach und nach temporäre Dateien (temporäre Dateien) an. Diese temporären Dateien werden generiert, wenn wir den Computer nutzen, z. B. Cache-Dateien beim Surfen im Internet, temporäre Dateien bei der Installation von Software usw. Wenn der temporäre Ordner über einen längeren Zeitraum nicht bereinigt wird, kann dies viel Speicherplatz beanspruchen und die Geschwindigkeit des Computers beeinträchtigen. Daher ist das regelmäßige Bereinigen des temporären Ordners ein notwendiger Schritt, um die Computerleistung aufrechtzuerhalten. Im Folgenden stellen wir einige einfache Möglichkeiten zum Bereinigen des temporären Ordners vor. Methode 1: Manuell reinigen
