2013-08-06 12 views
6

Ho questo sql,IsEmpty funziona come ISNULL in SQL Server?

IF(@ID = '') 
BEGIN 
    SET @ID = NULL; 
END 

IF(@Name = '') 
BEGIN 
    SET @Name = NULL; 
END 

IF(@PhoneNumber = '') 
BEGIN 
    SET @PhoneNumber = NULL;  
END 

IF(@Price = '') 
BEGIN 
    SET @Price = NULL; 
END 

IF(@NewPrice = '') 
BEGIN 
    SET @NewPrice = NULL; 
END 

IF(@ModelNumber = '') 
BEGIN 
    SET @ModelNumber = NULL; 
END 

IF(@SKU = '') 
BEGIN 
    SET @SKU = NULL; 
END 

Cerco funzione IsEmpty come ISNULL. In modo che io possa,

ISEMPTY(@SKU, NULL) 

È possibile in SQL.

risposta

35

Prova NULLIF come di seguito

NULLIF(@SKU,'') 
+2

Sto verificando Vuoto non null – user960567

+4

Questo è corretto Grazie – user960567

+1

Versione inglese della pagina NULLIF qui sopra: http://technet.microsoft.com/en-gb/library /ms177562%28v=sql.105%29.aspx – GazB

1

Questo può essere quello che stai cercando:

SET @SKU = CASE @SKU WHEN '' THEN NULL ELSE @SKU END 

EDIT

Per tutte le variabili ...

SELECT 
    @ID = CASE @ID WHEN '' THEN NULL ELSE @ID END, 
    @Name = CASE @Name WHEN '' THEN NULL ELSE @Name END, 
    @PhoneNumber = CASE @PhoneNumber WHEN '' THEN NULL ELSE @PhoneNumber END, 
    @Price = CASE @Price WHEN '' THEN NULL ELSE @Price END, 
    @NewPrice = CASE @NewPrice WHEN '' THEN NULL ELSE @NewPrice END, 
    @ModelNumber = CASE @ModelNumber WHEN '' THEN NULL ELSE @ModelNumber END, 
    @SKU = CASE @SKU WHEN '' THEN NULL ELSE @SKU END¸ 

EDIT2

Se chiunque usa il tipo di codice che ho suggerito, dimenticalo e usa NULLIF() come suggerito da altri ragazzi. HO COMPLETAMENTE DIMENTICATO esiste.

+0

Lotto di codice, c'è una semplice funzione disponibile – user960567

6

Usa SET @SKU = NULLIF(@SKU,'') per impostare su null @SKU dove @SKU è uguale al valore del secondo argomento.

IsEmpty non è una funzione T-SQL incorporata, ma è possibile utilizzare NULLIF per ottenere un comportamento simile.

5

Prova:

SET @YourValue=ISNULL(NULLIF(@YourValue,' '), NULL) 

quale restituisce NULL se il valore è NULL, vuoto o spazio.

Nota: NULLIF restituisce la prima espressione se le due espressioni non sono equivalenti. Se le espressioni sono equivalenti, NULLIF restituisce un valore nullo del tipo della prima espressione.

+2

non è IsNull (, NULL) ridondante? –

+0

Sì ... Possiamo evitarlo. – TechDo

+0

potrebbe sembrare ridondante, ma è la risposta alla domanda nel titolo. se sostituiamo il NULL tra parentesi a , otteniamo una funzione IsEmpty perfettamente funzionante. ed è esattamente quello che stavo cercando. il seguente codice modifica le stringhe vuote in un messaggio di errore: 'ISNULL (NULLIF (@YourValue, ''), 'Nessun valore inserito')' – robotik

Problemi correlati