この質問の後:「SQL: ColumnName が意味する NULL とは」 SQL サーバーがこのクエリの列に対してどのデータ型を選択するかについて興味を持ちました。
SELECT NULL as aColumn
だから私はこのテストを実行しました:
select * from (select null as aaa) resulta
UNION ALL
select 6.54
2 つの行を生成します。
aaa
---------------------------------------
NULL
6.54
これは次のとおりです。
select * from (select null as aaa) resulta
UNION ALL
select 'ab'
SQL Server 2000 では、次のように叫びました。
aaa
-----------
NULL
Msg 245, Level 16, State 1, Line 5
Syntax error converting the varchar value 'ab' to a column of data type int.
そしてSQL Server 2008ではこれを与えました:
aaa
----
NULL
ab
では、SQL Server がすべて null の列に選択するデータ型について何か推測はありますか?