SQL Tips : ANSI_NULLS
La seguente query :
SELECT DISTINCT Color from Production.Product WHERE Color IS NOT NULL;
come sappiamo tutti ritorna la lista dei Color dalla tabella Product non considerando i valori che sono a NULL.
ma se scriviamo la stessa query utilizzando l'operatore di confronto "diverso da" (<>) non otteniamo lo stesso risultato!
SELECT DISTINCT Color from Production.Product WHERE Color <> NULL;
Questo perchè di default Sql Server ha impostato il flag ANSI_NULLS su ON e quindi non è possibile equiparare i valori a NULL e darà come risultato "unknown”.
Per poter far si che l'operatore "<>" venga considerato bisogna settare il flag ANSI_NULLS OFF in questo modo:
USE AdventureWorks GO SET ANSI_NULLS OFF; SELECT DISTINCT Color from Production.Product WHERE Color <> NULL;
riferimento : MCTS_70-433 Training Kit MS SQL Server 2008 Database Development
luglio 14, 2010
Posted in: Coding, Programmazione, SQL



Code Emotion 2011
Leave a Reply