私の理解によると、IsNull関数は、nullまたは空白の場合は最初の値をチェックし、次の値を返します。SQLサーバーのISNULL動作
SELECT ISNULL(1,getdate())
しかし、上記の文章は誤りです。誰かがその理由を強調するのに役立つことができますか? intにデータ型日時から
私の理解によると、IsNull関数は、nullまたは空白の場合は最初の値をチェックし、次の値を返します。SQLサーバーのISNULL動作
SELECT ISNULL(1,getdate())
しかし、上記の文章は誤りです。誰かがその理由を強調するのに役立つことができますか? intにデータ型日時から
暗黙の変換が許可されていない、チャーBTW
SELECT ISNULL('1',getdate())
最初の値を作る、ちょうどISNULLは、ANSIはproprieteryであり、唯一の2つのパラメータを受け入れていないことに注意して、COALESCEはA受け付け多くの
DECLARE @1 INT,@2 int, @3 INT, @4 int
SELECT @4 = 6
SELECT COALESCE(@1,@2,@3,@4)
以下このステートメントが正しくない
のIsNull関数をチェックnullまたは空白の場合は最初の値、次の値を返します。
それがこの
SELECT ISNULL('','A') -- Blank is returned not A
SELECT ISNULL(NULL,'A') -- A is returned because the first value is NULL
実行はISNULLとCOALESCEの間に別の違いは、ISNULLは、最初のパラメータとして
実行これを同じ長さを返すことで、ブランクのために気にしません。
DECLARE @c CHAR(3)
SELECT ISNULL(@c,'not available') -- not
SELECT COALESCE(@c,'not available') --not available
情報ありがとうございますが、ISNULLは、最初の値がNULLでない場合でも、2番目のパラメータのデータ型をチェックします。 –
BTW: 'coalesce(1、getdate())'は、優先順位に従って第1パラメータに従わない。 –
coalesceとisnullの違いに関するいくつかの詳細:http://sqlwithmanoj.wordpress.com/2010/12/23/isnull-vs-coalesce/ – alun
私はIntegerをDateに置き換えようとしていると思います。代わりに、このSELECT ISNULL(1,2)を試してみてください。
これを自動キャストすることができますが、私は本当にそれをお勧めしません。それは何をしようとしているかを見ている他の人には不明です。
SELECT case when not 1 is null then 1 else getdate() end
何が間違っていますか? – Mat
これからどのような結果が得られますか? –