SQL combineren 2 kolommen in nieuwe kolom in dezelfde tabel

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • bjornboonk
  • Registratie: Juni 2021
  • Laatst online: 22-04 22:29
IIk wil 2 kolommen (municpality_code en municipality_name) combineren en de output in een nieuwe kolom opslaan.
Nu heb ik eerst een lege kolom aangemaakt 'Municipality' en wou via die volgende query data invoegen.
INSERT INTO corona.corona(municipality)
SELECT 'municipality_name' ||''||'municipality_code'
FROM corona.corona;

alleen voegt hij de query wel uit maar voegt hij ze niet toe en blijft er 'Null' staan in 'Municpality'.

Ook heb ik andere mogelijkheden geprobeerd. waarbij de kolom nog niet was aangemaakt zoals onderstaand voorbeeld.

ALTER TABLE corona.corona ADD COLUMN 'municipality' VARCHAR(50) AS (CONCAT_WS(' ', municpality_name, municpality_code);
Hierbij geeft hij bij AS een foutmelding kan iemand helpen?

Alle reacties


Acties:
  • +1 Henk 'm!

  • erwn
  • Registratie: November 2020
  • Niet online
Wil je nu in dezelfde tabel een veld vullen? Die kun je dan toch updaten?

Pseudo-code:
code:
1
update corona set municipality = name || code


Wil je dat veld overigens ook echt gebruiken of alleen ergens tonen? Als je het namelijk alleen wilt tonen, zou ik het niet redundant in de tabel opslaan.

[ Voor 34% gewijzigd door erwn op 28-06-2021 15:52 ]


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 10:47

The Eagle

I wear my sunglasses at night

Als je een bestaande tabel aan wilt vullen moet je idd column toevoegen en dan een update statement doen, geen insert (dat is voor volledig nieuwe rijen). Ik vraag me wel af wat je insert statement gedaan heeft. Als je er geen constraints op ebt staan zijn ej laatste rijen nu mogelijk erg warrig :P

Maar probeer idd het statement van mijn voorganger eens. En even opletten of je er een spatie tussen wilt hebben of niet :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • Tsurany
  • Registratie: Juni 2006
  • Niet online

Tsurany

⭐⭐⭐⭐⭐

erwn schreef op maandag 28 juni 2021 @ 15:50:

Wil je dat veld overigens ook echt gebruiken of alleen ergens tonen? Als je het namelijk alleen wilt tonen, zou ik het niet redundant in de tabel opslaan.
Dit lijkt me inderdaad een belangrijke vraag, doorgaans wil je data niet in je database gaan dupliceren en dat is wat je nu wel doet. Waarom moeten de velden samengevoegd opgeslagen worden?

SMA SB5.0 + 16x Jinko 310wp OWO + 10x Jinko 310wp WNW |--|--| Daikin 4MXM68N + 1x FTXA50AW + 3x FTXM20N


Acties:
  • 0 Henk 'm!

  • Gerton
  • Registratie: Februari 2011
  • Laatst online: 05-09 20:38
Als je dit enkel alleen wilt gebruiken om dit te tonen in een front-end of w/e kan je beter

code:
1
2
SELECT municipality_name+municipality_code as municipality
FROM corona.corona;


Gebruiken. Dan hoef je ook geen zorgen meer te maken over gedupliceerde waarden.

Acties:
  • 0 Henk 'm!

  • itons
  • Registratie: Oktober 2003
  • Niet online
Je kunt gewoon een generated kolom toevoegen hiervoor, of wel berekend voor elke querying (virtual) of gedupliceerd (stored)

https://www.mysqltutorial.org/mysql-generated-columns/
Pagina: 1