konto usunięte

Temat: Oracle i przestawienie rekordów

Witam,

Opis tabeli:

pole1; pole2;
a ; 100
b ; 120
c ; x
d ; x
e ; 121

zadanie:

jezeli w 'pole2' jest x to podmieniamy go na dane z tego wiersza z 'pole1' (tutaj c, d)

tabela ma więcej kolumn, tworzę z niej widok i tam można by coś zastosować.

macię pomysł na jakieś rozwiązanie? niestety mam zaćmę.

z góry dzięki za podpowiedźJacek Ołowiak edytował(a) ten post dnia 27.08.09 o godzinie 20:01

Temat: Oracle i przestawienie rekordów

Nie jestem pewien czy o to Ci chodziło:
UPDATE tabela SET pole2=pole1 WHERE pole2=x
Juliusz Stefankiewicz edytował(a) ten post dnia 27.08.09 o godzinie 21:01

konto usunięte

Temat: Oracle i przestawienie rekordów

nie bardzo. nie chodzi x jako x sam w sobie. Źle opisałem problem. Chodzi o dane z pole1; czyli jeżeli w polu 2 znajdę jakąś pewną daną (nazwijmy ją DUPA) to funkcja ma zamienić DUPA na to co znajduje się w tym wierszu w polu1 (a te dane niestety są przeróżne i nie schematyczne)

konto usunięte

Temat: Oracle i przestawienie rekordów

tez nie rozumiem do końca o co Ci chodzi

jeśli chcesz zawsze pobrać wartość pole1 a TYLKO W PRZYPADKU GDY JEST TAM 'x' chcesz pole2 to możesz zastosować decode

select decode( pole1, 'x', pole2, pole1) from tabela

albo zastosowac case

select
case pole1
when 'x' then pole2
else pole1
end
from tabela

konto usunięte

Temat: Oracle i przestawienie rekordów

sproboje i dam znać. dzięki
Marcin Sabat

Marcin Sabat Senior Database
Administrator at BNP
Paribas Fortis Bank
...

Temat: Oracle i przestawienie rekordów

moze "case
when x then ....
....
end;"

konto usunięte

Temat: Oracle i przestawienie rekordów

create view test1 as
select
pole1,
pole2,
case
when
(substr(snr,0,4) = '0199')
then (snr = pseudo_snr)
else (snr=snr)
end

from pickdata1

hmmm.... ora-00907

chyba czas iść do domu

konto usunięte

Temat: Oracle i przestawienie rekordów

(substr(snr,0,4) = '0199')

Zdecydowanie tak ...

http://www.techonthenet.com/oracle/functions/case.php

konto usunięte

Temat: Oracle i przestawienie rekordów

nie, raczej nie...nie wiem co mi chciałeś podkreślić al enie trafiłeś w błąd. juz przebrnalem i pokonalem sennosc

select
  case
    when (substr(snr,0,4) like '0199') then pseudo_snr
    else snr
  end as snr
from
  tabela

dzieki za pomoc. ide spać.

konto usunięte

Temat: Oracle i przestawienie rekordów

Jacek Ołowiak:
nie, raczej nie...nie wiem co mi chciałeś podkreślić al enie trafiłeś w błąd.

LOL ? Przecież chodziło mi o błąd składniowy.

Następna dyskusja:

Oracle_PL




Wyślij zaproszenie do