J'ai ce 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
Je cherche la fonction IsEmpty comme ISNULL. Afin que je puisse,
ISEMPTY(@SKU, NULL)
Est-ce possible en SQL?.
Essayez NULLIF comme ci-dessous
NULLIF(@SKU,'')
Utilisez SET @SKU = NULLIF(@SKU,'')
pour définir @SKU sur null, où @SKU est égal à la valeur du deuxième argument.
IsEmpty
n'est pas une fonction T-SQL intégrée, mais NULLIF
peut être utilisé pour obtenir un comportement similaire.
S'il vous plaît essayez:
SET @YourValue=ISNULL(NULLIF(@YourValue,' '), NULL)
qui renvoie NULL si la valeur est NULL, vide ou espace.
Remarque: NULLIF
renvoie la première expression si les deux expressions ne sont pas équivalentes. Si les expressions sont équivalentes, NULLIF
renvoie une valeur NULL du type de la première expression.
C'est peut-être ce que vous cherchez:
SET @SKU = CASE @SKU WHEN '' THEN NULL ELSE @SKU END
MODIFIER
Pour toutes vos variables ...
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
Si quelqu'un utilise le type de code que j'ai suggéré, oubliez-le et utilisez NULLIF () comme l'ont suggéré d'autres personnes. Je oublie complètement qu'il existe.
SELECT ISNULL( CASE StringColum1 WHEN '' THEN NULL ELSE textcolum1 END ,textcolum2)