0

この場合、colesceが何をするのか知りたいのですが、最初にnull以外の値が返されることを知っており、このリンクも確認しました。

ここで具体的に何をするのか知りたいです:

DECLARE @EMPNO NUMERIC(22,5)

SELECT @EMPNO = ''

SELECT @EMPNO = COALESCE(?, 0)

これらのステートメントを作成する私の意図は、@ EMPNOが空白の場合、代わりにゼロに置き換えたいということです。私はこれらの3つのステートメントからこれを達成することができたのではないかと思います。

手伝ってください

4

1 に答える 1

1

私はあなたがこのようにしなければならないと思います:

SELECT @EMPNO = COALESCE(@EMPNO, 0)

あなたも書くことができることを知っています

SET @EMPNO = COALESCE(@EMPNO, 0)

NUMERICaを空の varchar に設定することはできません。に設定する必要がありNULLます。したがって、完全なコードは次のようになります。

DECLARE @EMPNO NUMERIC(22,5)
SELECT @EMPNO = NULL
SELECT @EMPNO = COALESCE(@EMPNO, 0)

@EMPNOまたは、 を に設定する必要さえありませんNULL。変数を宣言するとき、それはNULLデフォルトです。したがって、必要なのはこれだけです。

DECLARE @EMPNO NUMERIC(22,5)
SELECT @EMPNO = COALESCE(@EMPNO, 0)

msdn を読むと、次のように書かれています。

引数の中で最初の非 null 式を返します。

ここを参照

于 2012-05-04T06:41:21.500 に答える