如何在sql server 2008中使用查询在一个表的所有列中获取几个列名

时间:2017-06-14 05:22:38

标签: sql sql-server

select COLUMN_NAME 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME='Submenu';

上面的查询给出了Submenu表中的所有列名,但我只想要Submenu表的三个列名。

有没有办法获取列名?

2 个答案:

答案 0 :(得分:0)

我认为这是SQL Server,因此以下查询可能无法在其他RDBMS上运行。)

如果您的问题是如何只查找您需要的列名(假设您事先知道那些列名称),您将不得不这样做:

SELECT 
    COLUMN_NAME
FROM
    INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_NAME='Submenu'
    AND COLUMN_NAME IN ('Column1', 'Column2', 'Column3')

此时,您基本上是在请求表格中任何列的列表,没有任何限制。

或者,如果您只查找前三个列名称,则可以使用:

SELECT TOP 3
    COLUMN_NAME
FROM
    INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_NAME='Submenu'
ORDER BY
    ORDERINAL_POSITION

在后一种情况下,您必须确定如何排序列名称(通过使用ORDER BY COLUMN_NAME之类的内容,以防您希望按字母顺序列出,或ORDER BY ORDERINAL_POSITION以防万一你试图按照它们出现在表格中的顺序来获取它们。

如果这不是您的意思,请详细说明您要实现的目标。

答案 1 :(得分:0)

SELECT TOP 3 COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'Submenu';

就这么简单!