SQL: Mehrere Spaltenwerte vereinen

Fragen und Probleme rund um die Abfragespache SQL.
Antworten
DaneW209
Neuer Benutzer
Beiträge: 1
Registriert: Fr 27. Apr 2018, 08:33

SQL: Mehrere Spaltenwerte vereinen

Beitrag von DaneW209 » Fr 27. Apr 2018, 08:50

Hallo Zusammen,

ich bin gerade total überfragt....
ich habe, vereinfacht ausgedrückt, folgende Abfrage (Rest der Abfrage ist nicht relevant):
SELECT AD.Auftrag, AD.Lieferart
FROM dbo.Auftrag as AD


Lieferart kann folgende Werte ausgeben:
- Montage Blabla
- Lieferung 1
- Lieferung 2
- Lieferung 3
- Abholung Schnickschnack


Ziel ist es, Werte der Spalte Lieferart zu vereinen:
- Montage Blabla -> Montage
- Lieferung 1, 2 oder 3 -> Lieferung
- Abholung Schnickschnack -> Abholung


Habt Ihr eine Idee, ob dies möglich ist? Wenn ja, wie?
Bin leider nicht sooo fit, was SQL betrifft...

Zur Info: Bewege mich im SQL Server Management Studio auf Windows Server 2012 R2

Vielen Dank im Voraus und ein schönes Wochenende.

akretschmer
Erfahrener Benutzer
Beiträge: 7640
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von akretschmer » Fr 27. Apr 2018, 08:54

Code: Alles auswählen

test=# create table danew209(id int, lieferart text);
CREATE TABLE
test=*# copy danew209 from stdin;
Geben Sie die zu kopierenden Daten ein, gefolgt von einem Zeilenende.
Beenden Sie mit einem Backslash und einem Punkt alleine auf einer Zeile, oder einem EOF-Signal.
>> 1	Montage Blabla
>> 2	Lieferung 1
>> 3	Lieferung 2
>> 4	Lieferung 3
>> 5	Abholung Schnickschnack
>> \.
COPY 5
test=*# select *, regexp_replace(lieferart, '\ .*$','') from danew209 ;
 id |        lieferart        | regexp_replace 
----+-------------------------+----------------
  1 | Montage Blabla          | Montage
  2 | Lieferung 1             | Lieferung
  3 | Lieferung 2             | Lieferung
  4 | Lieferung 3             | Lieferung
  5 | Abholung Schnickschnack | Abholung
(5 Zeilen)

test=*# 
so vielleicht? Was verstehst Du unter "vereinen"?
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

castorp
Erfahrener Benutzer
Beiträge: 1141
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von castorp » Fr 27. Apr 2018, 09:00

DaneW209 hat geschrieben:
Fr 27. Apr 2018, 08:50
Zur Info: Bewege mich im SQL Server Management Studio auf Windows Server 2012 R2
Dieses Forum ist für Postgres, nicht für SQL Server (Und "SQL" ist nur eine Abfragesprache, kein Synonym für "SQL Server").

Da aber Standard SQL nicht wirklich Möglichkeiten bietet mit denen man Dein Problem lösen könnte, wirst Du hier vermutlich keine nützliche Antwort bekommen.

Du solltest das besser in einem Forum für SQL Server fragen
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

pogomips
Erfahrener Benutzer
Beiträge: 105
Registriert: Fr 18. Nov 2016, 09:55

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von pogomips » Fr 27. Apr 2018, 09:45

Ich denke, das Problem ist relativ unabhängig von der Datenbank.
Beim Finden/Auswerten von Mustern kann natürlich das eine Regex anders als das andere sein, aber das ist etwas nebensächlich oder?

Schätze das Grundproblem ist ziemlich verbreitet: Eine Kategorienspalte, in die jeder seinen Sch.. einträgt und fertig ist das Chaos.

zur Bereinigung:
on-the-fly: baue einen Ausdruck (oder Funktion), die alle Inhalte auf eine definierte Menge eindampft (schwierig, wenn immer neuer Sch.. dazu kommt)
offline: Selektiere Wertegruppen, die zu einer Kategorie zusammengefasst werden sollen, individuell mit spezifischen Where Bedingungen und mache darauf ein Update mit nur noch einer Kategorie.

dann, wenn es (mal kurz) sauber ist, kann man das Datenmodell so ändern, dass nur vorgegebene Kategorien akzeptiert werden. Dafür gibt es verschiedene Möglichkeiten, z.B. ein Constraint, der nur bestimmte (Text)werte erlaubt (easy, low impact, weil ja offenbar ein Textfeld hier vorliegt) oder eine Ausgliederung der Kategorie in eine Nachschlagetabelle und Verknüpfung per ID (easy, high impact).

castorp
Erfahrener Benutzer
Beiträge: 1141
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von castorp » Fr 27. Apr 2018, 10:07

pogomips hat geschrieben:
Fr 27. Apr 2018, 09:45
Ich denke, das Problem ist relativ unabhängig von der Datenbank.
Beim Finden/Auswerten von Mustern kann natürlich das eine Regex anders als das andere sein, aber das ist etwas nebensächlich oder?
Dann kannst Du ja die Antwort von akretschmer verwenden.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

pogomips
Erfahrener Benutzer
Beiträge: 105
Registriert: Fr 18. Nov 2016, 09:55

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von pogomips » Fr 27. Apr 2018, 10:52

Ich muss gar nichts verwenden, der TE vielleicht.

akretschmer
Erfahrener Benutzer
Beiträge: 7640
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von akretschmer » Fr 27. Apr 2018, 10:54

lol
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

castorp
Erfahrener Benutzer
Beiträge: 1141
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von castorp » Fr 27. Apr 2018, 11:28

pogomips hat geschrieben:
Fr 27. Apr 2018, 10:52
Ich muss gar nichts verwenden, der TE vielleicht.
Ooops ;) sorry
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

akretschmer
Erfahrener Benutzer
Beiträge: 7640
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von akretschmer » Fr 27. Apr 2018, 11:39

der Fragesteller hatte sich eh verlaufen und fragt nun in einem anderen Forum weiter ...
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

pogomips
Erfahrener Benutzer
Beiträge: 105
Registriert: Fr 18. Nov 2016, 09:55

Re: SQL: Mehrere Spaltenwerte vereinen

Beitrag von pogomips » So 29. Apr 2018, 10:34

castorp hat geschrieben:
Fr 27. Apr 2018, 11:28
Ooops ;) sorry
Kein Problem, der (unterbewusste) Gedankengang: "Der Beitrag ist nicht von akretschmer und nicht von mir selbst, also muss es der Fragesteller sein" ist in diesem Forum ja ziemlich naheliegend.
:)

Antworten