-
SQL Insert in schleife
hallo *all,
Kann ich mit SQL einen Datensatz mehrfach kopieren.
Bsp.:
insert into LIB/FILE_1 select Feld_a, feld_b, (select distinc(feld_x) from lib/file_2 where feld_x like '%D01'), feld_d, feld_e where ...
Der fette Teil ist eine Liste aller einzufügenden Sätze.
vielen Dank
gruß
Robi
-
Ein skalarer Subselect (dein fetter Teil) darf genau nur 1 Feld und 1 Zeile ergeben !
Wenn der Subselect keine Daten findet, wird NULL geliefert. Sollte dein Zielfeld kein NULL erlauben, musst du den Subselect noch in ein coalesce(select ... , Defaultwert) einbauen, sonst stirbt der gesamte SQL ab dem 1. fehlerhaften Satz.
Der, auf den insert folgende, Fullselect kann durchaus beliebig viele Zeilen liefern.
-
Hi,
mir fehlt irgendwo eine Tabelle in Deinem SQL-Statement.
Aber versuch mal folgendes:
PHP-Code:
insert into Lib/File_1
with x as (Select distinct(Feld_X) from Lib/File_2
where Feld_X like '%D01')
select Feld_a, Feld_b, Feld_X, Feld_d, ....
from Lib/File_3 cross join x
Where ........
Birgitta
-
@Fuerchau
genau das wollte ich ja nicht, ich will ja mehrere Sätze einfügen.
@Birgitta
Du bist echt die größte!!
Funktioniert !!!!
irre, wie kommt man den auf so was !
Wenn es deine Zeit erlaubt kannst du dazu noch kurz etwas erklähren ?
DANKE
echt irre
Robi
-
Hi,
Wenn es deine Zeit erlaubt kannst du dazu noch kurz etwas erklähren ?
was willst Du wissen?
With x as (Select .....) ist eine Common-Table-Expression (CTE), die so etwas wie eine "temporäre View" nur für dieses eine Statement erzeugt.
CTEs sind Bestandteil des Select-Statements und werden seit Release V4R3M0 unterstützt. Für jedes Select-Statement können mehrere CTEs, die sich auch aufeinanderbeziehen können, definiert werden. (einfach with x as (Select ), y as (Select ) ...)
Die CTE war notwendig, wegen der Distinct-Anweisung.
Im eigentlichen Select-Statement wird über CROSS JOIN jeder Satz dieser CTE mit jedem Satz auf FILE_3 verknüpft.
Birgitta
-
Danke
das mit dem CROSS JOIN war mir nicht klar, wenn ich ehrlich bin, kannte ich das garnich. Mich wunderte das ich keine verknüpfung anzugeben brauche.
Nochmals vielen Dank
Robi
-
Cross join ist die Verknüpfung jeden Satzes von Datei A mit B. Dies entspricht übrigens auch folgendem:
select * from filea, fileb
-
SQL Update
Hallo,
ich habe eine frage bezüglich SQL, wäre schön wenn jemanden mir dabei helfen kann.
ich habe eine Tabelle mit vielen Dupplikaten drin, ich will eine SQL Anfrage schreiben, die mir die Duplikate sucht, und in einem bestimmten feld ein wert wie eins oder char wie 'Duplikat' schreiben. wie in eine Schleife.
die Tabelle sieht so aus(Beispiel):
NAME Nachname wert
Mo Do
Sa Fra
Sa Fra
Mo Do
Al x
Fa ca
ich will unter die Spalte wert irgendetwas schreiben können,
ich komme leider nicht mehr weiter, ich werde alles begrüßen, auch lösungen mit ASP bzw. ASPX
Danke im Voraus,
-
Die folgende Abfrage listet Dir alle Duplikate auf. In der 3. Spalte wird die Anzahl der Vorkommen ausgegeben
PHP-Code:
Select Name, Nachname, Count(*)
From MyTable
Group By Name, Nachname
Having count(*) > 1
-
Vielen Dank für die schnelle Antwort, es ist mir klar mit having count(*)>1 die Dupilkat raus zu filtern, ich will gerne jetzt im Felder die widerholt vorkommen, einen Wert einfügen wie 0 oder 1 oder char.
Vielen Dank
-
ich will gerne jetzt im Felder die widerholt vorkommen, einen Wert einfügen wie 0 oder 1 oder char
Dazu musst Du die Duplikate zunächst ermitteln, das Ergebnis mit der Original-Datei verknüpfen und wenn Duplikat den gewünschten Wert, z.B. setzen.
PHP-Code:
with x as (Select Name, Nachname from MyTable
group by Name, Nachname
having count(*) > 1)
select a.*, case when x.Name is not NULL then 1 else 0 End
from MyTable a left outer join x using(Name, Vorname)
Birgitta
-
SQL Abfrage, Email zerlegen
Hallo Zusammen,
ich habe eine email Adreese, die will ich mit eine SQL Abfrage in 2 Felder speichern
eingabe: testtt@prvider.de
ich möchte gerne testtt in Spalte1 und provider.de in Spalte2 haben.
kann mir jemand helfen. Vielen Dank im Voraus.
Sam
Similar Threads
-
By woki in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 31-10-06, 10:21
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 20-01-06, 15:23
-
By Deficiency in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 13-01-06, 09:00
-
By linguin in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 07-01-06, 15:46
-
By Deficiency in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 01-12-05, 11:22
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks