praegune kellaaeg 04.07.2025 16:43:27
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
nexus4
Kreisi kasutaja

liitunud: 01.03.2012
|
15.07.2014 16:19:00
SQL lihtne update |
|
|
Ei oska hästi seda googeldada.
Tegu oracle'ga
Mul on vaja lihtsalt muuta ühes veerus andmeid.
Algoritm kõlaks järgnevalt: Kui väärtus 1 siis uus väärtus 2, kui väärtus 3 siis uus väärtus 8 jne.
enamus otsingutulemusi räägivad kuidas muuta väärtust nii, et uued väärtused on kusagilt teisest tabelist ja veerust pärit, mul on vaja lihtsalt öelda, et kui siin on x siis nüüd olgu seal y, a siis nüüd b jne. Tahaks et jääksid ühte päringusse, ideepoolest saaksin kõik ükshaaval ka läbi teha, aga see ei ole mõistlik.
UPDATE tabel1
SET veerg1=CASE veerg1
WHEN 1 THEN 6
WHEN 4 THEN 0,4
WHEN 6 THEN 0,2
END
ei tööta, mis valesti
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
 |
neros
HV Guru

liitunud: 26.11.2003
|
15.07.2014 16:41:21
|
|
|
Pole oraakliga kursis v2ga, aga SQL serveris k2ivad need niipidi, et SET veerg1 = (CASE WHEN this THEN 1 ELSE 2 END) ehk sulgudesse, eeldan, et oraaklis peaks samamoodi olema?
Ahhaa, googel ütles nii:
UPDATE table
SET column = CASE
WHEN x THEN y
WHEN x1 THEN y1
ELSE z END
E2: ehk siis sinu puhul vist SET veerg1 = CASE WHEN (veerg1 = 1) THEN 6...
_________________ GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt. |
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
40 |
|
tagasi üles |
|
 |
Le Inc
HV Guru

liitunud: 06.09.2002
|
07.08.2014 23:16:45
|
|
|
oracle8:
|
UPDATE mytable SET x = CASE WHEN x = 'A%' THEN 'kala' WHEN x = 'E%' THEN 'konn' END;
|
NB! Komaga arvud tuleb eraldada ülakomaga, nt '5,6'. Vististi oleneb ka locale sättetest, aga Oracle sööb nii punkti kui koma samamoodi.
Täisarvudel ei pea olema ülakomaga eraldust, kuid võib.
viimati muutis Le Inc 10.08.2014 15:48:49, muudetud 2 korda |
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
kriimsilm
HV kasutaja

liitunud: 19.05.2002
|
07.08.2014 23:39:26
|
|
|
Komakohtade eraldajana arvudes kasuta punkti. ELSE klause on puudu lõpust.
Muidu võib kasutada ka DECODE
UPDATE tabel1
SET veerg1=DECODE(veerg1, 1, 6, 4, 0.4, 6, 0.2, veerg1); |
|
|
Kommentaarid: 12 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
12 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|