如何选择具有列名称的列数据类型

时间:2014-12-10 04:45:54

标签: sql sql-server

如何从SQL Server中的表中选择具有列名的列数据类型?

这样的事情:

select AgentID, Datatype, ReportNo, Datatype 
from MyTable

期望的输出

  

enter image description here

我不想使用InformationSchema - 我知道这会有效:

select COLUMN_NAME, DATA_TYPE 
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'MyTable'

我不能直接使用表中的详细信息吗?

2 个答案:

答案 0 :(得分:1)

当您想知道表格中列的详细信息时。您只需使用(sp_columns)

即可
sp_columns MyTable

答案 1 :(得分:0)

您可以编写如下查询:

SELECT I.[AgentID],
       T.data_type as 'Data Type',
       I.[ReportNo],
       T1.data_type as 'Data Type'
FROM MyTable I
CROSS APPLY ( SELECT data_type 
              FROM INFORMATION_SCHEMA.COLUMNS
              WHERE table_name = 'MyTable' AND COLUMN_NAME = 'AgentID') AS T
CROSS APPLY ( SELECT data_type 
              FROM INFORMATION_SCHEMA.COLUMNS
              WHERE table_name = 'MyTable' AND COLUMN_NAME = 'ReportNo') AS T1