2016-09-22 11 views
-1

MS SQLの関数が空の文字列( '')をテーブルとハンドル条件に挿入するときにチェックする必要があります。私はどのようにわからない。私はこの構文を使用します:関数が空の文字列を返すときにMS SQLのIF文

INSERT 
INTO [DB].[dbo].[TablesNames] 
(Name) 
VALUES 
(CASE 
     WHEN [dbo].Function(@ID, @ExternalName, @Level) IS '' 
     THEN @Name 
     ELSE [dbo].Function(@ID, @ExternalName, @Level)) 

この場合正しい構文はどうですか?進歩のためのThx。

答えて

1

私はこれを書くために、より傾斜のようになります。それが呼び出されたとき

INSERT INTO [DB].[dbo].[TablesNames](Name) 
    SELECT (CASE WHEN x = '' THEN @Name ELSE x END) 
    FROM (SELECT [dbo].Function(@ID, @ExternalName, @Level) as val) x; 

機能は通常、オーバーヘッドが発生します。この定式化により、SQL Serverは関数を一度しか評価できなくなります。

カップルより多くの事:

  • 私はISを認識しません。 IS NULLを意味するのでしょうか?
  • 空白の値(空の文字列)を見ている場合は、NULLの値も考慮したいですか?
関連する問題