funzione ISNULL entro comando di selezione di formview
-
25-10-2019 - |
Domanda
Questa è parte della mia dichiarazione prescelta all'interno di un formview che funziona bene fino a che non colpisce un valore nullo durante il processo di aggiornamento.
(SELECT TOP 1 F.tel_id FROM TELEPHONE as F where F.tel_type_id = 3 AND F.client_id = @id
ORDER BY sort_no ) AS faxid
così ho provato ad utilizzare la funzione ISNULL nel seguente modo, ma genera un errore. come può essere fatto?
ISNULL((SELECT TOP 1 F.tel_id FROM TELEPHONE as F where F.tel_type_id = 3 AND F.client_id= @id ORDER BY sort_no ) AS faxid ,0) AS faxid
Soluzione
credo di aver trovato la causa del problema. E se questo è veramente quello che allora io sono quasi certo che qualcun altro avrebbe individuato prima di quanto ho fatto io se avessi formattato il secondo frammento di codice più bene.
Quindi, qui va il frammento di codice, un po 'riformattato:
ISNULL(
(
SELECT TOP 1 F.tel_id
FROM TELEPHONE as F
where F.tel_type_id = 3
AND F.client_id= @id
ORDER BY sort_no
) AS faxid,
0
) AS faxid
La parte evidenziata, il AS fixed
morse subito dopo la subquery, è errata, semplicemente non dovrebbe essere lì. Probabilmente solo trascurato di esso.
Altri suggerimenti
Le vostre esigenze IsNull essere intorno F.tel_id
Prova
SELECT TOP 1 ISNULL(F.tel_id, 0) FROM TELEPHONE as F where F.tel_type_id = 3 AND F.client_id = @id ORDER BY sort_no
È possibile utilizzare la funzione di COALESCE di restituire qualcosa di diverso da zero . Così, quando i tuoi esegue query e ha un valore che viene restituito il resto il valore specificato viene restituito.