2017-02-22 90 views
0

在SQL Server中,當我創建像一列:這一欄是什麼類型的?

select *, '1' as test

這是什麼新列即1的類型?

還有一個問題,我可以在其他表上引用此列嗎?

+2

這可能取決於RDBMS ,最可能的是'Char(1)' –

+0

ANSI/ISO SQL:「<字符串文字>的聲明類型是固定長度的字符串,<字符串文字>的長度是<它包含的字符表示「。即在這種情況下「字符(1)」。 – jarlh

回答

2

對於SQL Server,你可以回答這樣的問題很容易使用sp_describe_first_result_set

exec sp_describe_first_result_set N'select *, ''1'' as test from sys.objects' 

產生一個結果集,最後一排,其中表明,該test列結果集是varchar(1)。 (在這種情況下,其他的結果,從sys.objects表拉動其他列說清楚,這個過程能夠描述列作爲非varchar(2)nvarchar(128)的,所以它不只是一個顯示問題)

0

這個列有char(1)類型,是的,你可以在連接或其他操作中使用這個列。

因爲它的值是''中的一個字符串如果你想要它是一個整數。你可以做到以下幾點:

select *, Cast(1 as INT) as test FROM SomeTable 
+0

請參閱我的更新回答 –

+0

@DmitryBychenko - 這可能是更明智的結果,但它不是什麼,例如, SQL Server產生。 –