2016-07-05 65 views
1

我在T-SQL視圖中遇到了一些我從未見過的東西,並且很好奇它的目的是什麼。該視圖在某些表上執行左散列連接,並使用a.ID + 0選擇第一個表的ID列。我從來沒有在野外看到過這個,並且在StackOverflow上找不到類似的東西。T-SQL select語句中[field] + 0的用途是什麼?

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

我不得不從視圖中刪除+ 0語句,因爲在視圖中ID字段似乎是空的,即使原始表中的數據源中列出的列非空。

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 
相關問題