Wybór danych do wyświetlania

Odpowiedz Nowy wątek
2014-12-13 19:31
0

Witam.

Jestem początkujący w SQL. Mam problem tzn. mam tabele, w której są jakieś dane oraz kolumna "KOSZT" muszę napisać skrypt SQL, który za pomocą podawanego parametru np. podajemy '0' -> będzie wybierał dane które mają koszt równy 0 a jeśli podamy coś innego to wyfiltruje wszystkie dane, które mają koszt większy niż 0. Próbowałem to w CASE:

CASE WHEN '&koszt'='0' THEN (SELECT * FROM tabela where koszt = 0)  ELSE (SELECT * FROM tabela where koszt >0) end

lecz zwraca mi to błąd:

ORA-01427: jednowierszowe podzapytanie zwraca więcej niż jeden wiersz

Jakim innym sposobem można coś takiego osiągnąć?

Pozostało 580 znaków

2014-12-13 20:15
0

Selekt * to zwróci dużo pasujących danych
select pole1, pole2, pole3, Case when Pole1=0 then pole2 else pole3 end AS [MOJA_NAZWA_POLA] FROM TABELA

Jak chcesz w case użyć select to z TOP1 albo z innymi warunkami powodującymi ze wynik będzie zwracany ale tylko jeden
Tak przynajmniej działa w MSSQL

Pozostało 580 znaków

2014-12-13 20:21
0

W CASE musisz zwracać za pomocą podzapytania tylko jedną wartość.

IF koszt=0 THEn
SELECT...
ELSE
SELECT...

"There are people who actually like programming. I don't understand why they like programming."
Rasmus Lerdorf

Pozostało 580 znaków

2014-12-13 22:13
1

ech specjaliści...

SELECT * FROM tabela WHERE '&koszt'='0' and koszt = 0 or '&koszt'<>'0' and koszt > 0

Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0