it-swarm.com.de

IsEmpty-Funktion wie ISNULL in SQL Server?

Ich habe diese SQL,

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

Ich suche IsEmpty-Funktion wie ISNULL. Damit ich kann,

ISEMPTY(@SKU, NULL)

Ist das in SQL möglich?.

9
user960567

Versuchen Sie NULLIF wie unten

NULLIF(@SKU,'')
40
Parado

Verwenden Sie SET @SKU = NULLIF(@SKU,''), um @SKU auf null zu setzen, wobei @SKU dem Wert des zweiten Arguments entspricht.

IsEmpty ist keine integrierte T-SQL-Funktion, aber NULLIF kann verwendet werden, um ein ähnliches Verhalten zu erzielen.

7
Mentatmatt

Bitte versuche:

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

welcher gibt NULL zurück, wenn der Wert NULL, leer oder ein Leerzeichen ist.

Hinweis: NULLIF gibt den ersten Ausdruck zurück, wenn die beiden Ausdrücke nicht gleichwertig sind. Wenn die Ausdrücke gleichwertig sind, gibt NULLIF einen Nullwert des Typs des ersten Ausdrucks zurück.

7
TechDo

Versuchen Sie es unten in der select -Klausel.

select ISNULL( nullif(EmptyOrNullOrBlankColumn,'' ),NULL)

Unten in der Where -Klausel.

where ISNULL( nullif(EmptyOrNullOrBlankColumn,'' ),NULL) is not null
1
ramit girdhar

Das könnte sein, wonach Sie suchen:

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

EDIT

Für alle Ihre Variablen ...

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

Wenn jemand den von mir vorgeschlagenen Code verwendet, vergessen Sie ihn und verwenden Sie NULLIF (), wie von den anderen vorgeschlagen. Ich habe völlig vergessen, dass es existiert.

SELECT ISNULL( CASE StringColum1  WHEN '' THEN NULL ELSE textcolum1 END ,textcolum2) 
0
user6123020