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?.
Versuchen Sie NULLIF wie unten
NULLIF(@SKU,'')
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.
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.
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
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)