2016-07-05 6 views
1

以前に見たことのないT-SQLビューで何かを見つけましたが、その目的が何か不思議でした。ビューはいくつかのテーブルで左ハッシュ結合を実行しており、最初のテーブルのIDカラムはa.ID + 0を使用して選択されています。私はかつてこれを野生で見たことがなく、StackOverflowで何か類似したものを見つけることができませんでした。T-SQL select文の[field] + 0の目的は何ですか?

SELECT a.ID + 0 ID, a.FIELD1, a.FIELD2 
    FROM myDatabase.dbo.SomeTable as a LEFT HASH JOIN ... 

ビュー内のIDフィールドは、元のテーブルのデータソースが非nullとして列を記載されているにもかかわらず、NULL可能であるように見えたので、私は、ビューから+ 0文を削除する必要がありました。

selectステートメントのID + 0の目的は何ですか?

答えて

4

可能であれば文字列をINTに変換し、それ以外の場合はエラーをスローします。

は考えてみましょう:

select sql_variant_property('1', 'BaseType')  -- varchar 
select sql_variant_property('1'+0, 'BaseType') -- int 
select sql_variant_property('ABC'+0, 'BaseType') -- Error 
関連する問題