私はこの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
ISNULLのようなIsEmpty関数を探しています。私ができるように、
ISEMPTY(@SKU, NULL)
これはSQLで可能ですか?.
[〜#〜] nullif [〜#〜] を試してください
NULLIF(@SKU,'')
してみてください:
SET @YourValue=ISNULL(NULLIF(@YourValue,' '), NULL)
値がNULL、空、またはスペースの場合、NULLを返します。
注:2つの式が等しくない場合、NULLIF
は最初の式を返します。式が等しい場合、NULLIF
は最初の式の型のNULL値を返します。
SET @SKU = NULLIF(@SKU,'')
を使用して@SKUをnullに設定します。@ SKUは2番目の引数の値に等しくなります。
IsEmpty
は組み込みのT-SQL関数ではありませんが、NULLIF
を使用して同様の動作を実現できます。
select
句で以下を試してください。
select ISNULL( nullif(EmptyOrNullOrBlankColumn,'' ),NULL)
以下のWhere
句。
where ISNULL( nullif(EmptyOrNullOrBlankColumn,'' ),NULL) is not null
これはあなたが探しているものかもしれません:
SET @SKU = CASE @SKU WHEN '' THEN NULL ELSE @SKU END
[〜#〜] edit [〜#〜]
すべての変数について...
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
誰かが私が提案した種類のコードを使用する場合、他の人が示唆したようにそれを忘れてNULLIF()を使用してください。それが存在することを完全に忘れました。
SELECT ISNULL( CASE StringColum1 WHEN '' THEN NULL ELSE textcolum1 END ,textcolum2)