2012-11-08 8 views
7

Czy istnieje sposób wstawiania wartości zerowej zamiast NULL podczas wykonywania LEWEGO ZEWNĘTRZNEGO PODŁĄCZENIA na dwóch stołach?Wstawianie wartości zerowej zamiast wartości NULL podczas wykonywania LEWEGO ZŁĄCZY OUTER w MYSQL

Załóżmy, że mam zapytać tak:

SELECT * FROM 
(SELECT uID from Class) T1 
LEFT OUTER JOIN 
(SELECT pID from University) T2 
ON T1.uID = T2.pID 
CASE WHEN T1.uID IS NULL 
    THEN 0 
ELSE T1.uID 
END AS uID` 

mnie poprawić jeśli się mylę

Odpowiedz

6
CASE WHEN a.fieldname IS NULL 
     THEN 0 
     ELSE a.fieldname 
END AS fieldname 
+0

'SE Lect * FROM (SELECT UID od klasy) T1 LEFT OUTER JOIN (SELECT PID z University) T2 NA T1.uID = T2.pID przypadku, gdy T1.uID IS NULL THEN ELSE 0 T1.uID END AS uID'Popraw mnie, jeśli się mylę. – Crocode

+1

Jeśli chcesz dołączyć do T1.UIDID jako 0, gdy jest pusty, użyj poniżej: 'WYBIERZ * Z (WYBIERZ PRZYPADKĘ, JEŚLI NIE JESTEŚ NIŻEJ 0 ELSE uID END AS uID from Klasa) T1 LEFT OUTER JOIN (WYBIERZ PID z University) T2 ON T1.uID = T2.pID ' – sel

9

użycie ISNULL (pole, 0) to wstawi do zera, jeśli pole jest NULL

+4

Dla MySQL masz na myśli' ifnull() 'zamiast' isnull() '=) – Metafaniel

2

coś takiego: -

SELECT * FROM 
(SELECT ifnull(uID,0) as uID from Class) T1 
    LEFT OUTER JOIN 
(SELECT ifnull(pID,0) as pID from University) T2 
    ON T1.uID = T2.pID 
Powiązane problemy