После этого вопроса: «SQL: What does NULL as ColumnName imply» Я стал любопытным о том, какой тип данных будет SQL сервер выбрать для столбца в этом запросе:Тип данных Избранный SQL Server для Null Колонка
SELECT NULL as aColumn
Так что я побежал это тесты:
select * from (select null as aaa) resulta
UNION ALL
select 6.54
Yelds два ряда:
aaa
---------------------------------------
NULL
6.54
В то время как этот:
select * from (select null as aaa) resulta
UNION ALL
select 'ab'
В SQL Server 2000 yelded это:
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 выбирает для всех нуль столбец?
Я всегда брось, SELECT CAST (NULL, как VARCHAR (50)), как aColumn – JBrooks
@JBrooks, спасибо, я обычно делаю то же самое. Я просто озадачен тем, что SQL Server делает внутренне, если я просто даю ему псевдоним без кастинга. – JoseTeixeira