SELECT中的T-SQL派生列

时间:2014-01-09 18:46:31

标签: sql sql-server

SELECT
INT_VALUE = NULL -- Result Data Type = INT
,STR_VALUE = NULL -- Result Data Type = INT

我想确保STR_VALUE是一个varchar NULL而不是int NULL。我需要在SELECT语句和派生列中完成此操作。

我怎样才能做到这一点?

谢谢

更新:感谢大家提供快速反馈。只是“fyi”之类的东西,我正在尝试为ETL应用程序创建查询查询,并想看看我是否可以在t-sql中创建NULL字符串列,而不是创建基于NULL字符串派生列的ETL应用程序。

THX

3 个答案:

答案 0 :(得分:3)

NULL默认为int。您可以使用cast()将其更改为任何其他类型:

SELECT INT_VALUE = NULL, -- Result Data Type = INT
       STR_VALUE = cast(NULL as varchar(255)) -- Result Data Type = varchar(255)

答案 1 :(得分:1)

只需CAST

SELECT
INT_VALUE = CAST(NULL AS int)
,STR_VALUE = CAST(NULL as VARCHAR(10)) 

答案 2 :(得分:1)

如果你是根据SELECT创建一个表(例如SELECT INTO),你也可以使用cast / convert:

SELECT NULL as INT_VALUE, CAST(NULL as Varchar(10)) AS STR_VALUE
INTO MyNewTable