Zero zwróconych wierszy - można obejść?

Zero zwróconych wierszy - można obejść?
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam. Mam taki problem. W wyniku zapytania zostaje zwróconych zero wierszy. Czyli nic nie znalazł. Jak mogę się zabezpieczyć przed tym. Chcę żeby nawet jeśli nie ma żadnych odpowiadających wierszy coś mi zwrócił, np cyfre 0 w przypadku gdy nic nie znalazł. Jest taka możliwość w sql? Nie mogę stosować skryptów i konstrukcji typu if else. Proszę o rady

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

Ale zapytanie zwraca wiersz(e), jak moze w takim razie zwrocic Ci cyfre? ;) To po stronie klienta bazy powinno byc sprawdzanie co zostalo zwrocone.

Loganek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 268
0

Nie mogę stosować skryptów i konstrukcji typu if else

chodzi ci o to że nie możesz stosować skryptów, a w nich tych konstrukcji, czy w sql'u nie możesz stosować if'a? Bo jeśli tylko to pierwsze, to można w sql'u śmiało if'a używać;)

  • Rejestracja: dni
  • Ostatnio: dni
0

A if exists(select costam from Tabela) pomoże?

crowa
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 295
0
Kopiuj
SELECT ISNULL(col1 , 0)
FROM tabela 
WHERE warunek

i w zaleznosci od typu col1 ustawiasz 0 lub '0'

lub z EXISTEM

Kopiuj
IF EXISTS (SELECT col1 FROM tabela WHERE warunek)
  SELECT col1 FROM tabela WHERE warunek
ELSE
  SELECT 0
AP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3079
0

@crowa - pierwszy przykład kodu nic nie zwróci. Pusty rekord nie zwraca null. Zadziała tylko exists...

crowa
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 295
0

no to inaczej (faktycznie chyba cos zle przemyslalem z isnullem)

Kopiuj
SELECT TOP 1 X.*
FROM
(SELECT col1 from Tabela
 WHERE warunek
UNION ALL -- koniecznie ALL
 SELECT 0
)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.