在这个问题之后:“ SQL:NULL as ColumnName 意味着什么”我开始好奇 sql server 会为这个查询中的列选择什么数据类型:
SELECT NULL as aColumn
所以我运行了这个测试:
select * from (select null as aaa) resulta
UNION ALL
select 6.54
产生两行:
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 为全空列选择什么数据类型的任何猜测?