Kiedy select zwraca null, a kiedy no_data_found ?

Kiedy select zwraca null, a kiedy no_data_found jak nic nie znajdzie ?

No właśnie, różnie zwraca. Przykłady

-- no_data_found
SELECT '1' FROM dual WHERE 1=2;
 
-- null
SELECT SUM(1) FROM dual WHERE 1=2;
SELECT MIN(1) FROM dual WHERE 1=2;
SELECT MAX(1) FROM dual WHERE 1=2;
 
SELECT SUM(1), 'A' x FROM dual WHERE 1=2;
SELECT MIN(1), 'A' x FROM dual WHERE 1=2;
SELECT MAX(1), 'A' x FROM dual WHERE 1=2;
 
-- no_data_found
SELECT SUM(1), 'A' x FROM dual WHERE 1=2 GROUP BY 2;
SELECT MIN(1), 'A' x FROM dual WHERE 1=2 GROUP BY 2;
SELECT MAX(1), 'A' x FROM dual WHERE 1=2 GROUP BY 2;
 
SELECT SUM(1) FROM dual WHERE 1=2 HAVING SUM(1) IS NOT NULL;
SELECT MIN(1) FROM dual WHERE 1=2 HAVING SUM(1) IS NOT NULL;
SELECT MAX(1) FROM DUAL WHERE 1=2 HAVING SUM(1) IS NOT NULL;

 

Generalnie, chyba jak jest funkcja  agregująca, to zwraca null.

Ala jak zapytanie ma klauzulę group by to zwraca not_data_found.

 

 

Ten wpis został opublikowany w kategorii PLSQL i oznaczony tagami . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz