2010-07-27 6 views
6

Devo selezionare una colonna di bit nullable in una vista, ma utilizzare un valore predefinito di FALSE ogni volta che il valore è NULL. (Per altri motivi, non posso aggiungere il valore predefinito sulla tabella di origine stessa.) Ecco cosa sto facendo.Selezionare un bit nullable con un valore predefinito

Devo farlo su quattro colonne, quindi mi chiedo se c'è un modo migliore/più efficiente per farlo.

risposta

9

utilizzare la funzione isnull.

isnull(bit_column, 0) 
5
SELECT coalesce(bit_column,0) bit_column 
+0

Che tipo di dati verrà inviata al cliente? int o bit? – gbn

+0

Un bit verrà inviato al client. – xcer

+0

Buona domanda, l'ho ricercata e ho trovato questo collegamento: http://databases.aspfaq.com/database/coalesce-vs-isnull-sql.html Da lì, "COALESCE funziona più come un'espressione CASE, che restituisce un singolo tipo di dati dipende dalla precendenza e soddisfa tutti i possibili risultati ". Quindi non sono sicuro. Ma sul lato client, 0 o 1 si adatteranno in un bit o in un int, quindi non sono sicuro che importi. – dcp