SQL Server:不按名称选择列

SQL Server:不按名称选择列,sql,sql-server-2008,Sql,Sql Server 2008,在SQL Server 2008中,是否可以不按列的名称,而是按列在表中的显示顺序选择列 原因是我想选择表的前5列或前6列,无论内容是什么,因为它们的名称或列本身可能会被更改或移动。对于前5列,您可以尝试以下方法: select column_name,ordinal_position from information_schema.columns where table_schema = ... and table_name = ... and ordinal_positio

在SQL Server 2008中,是否可以不按列的名称,而是按列在表中的显示顺序选择列


原因是我想选择表的前5列或前6列,无论内容是什么,因为它们的名称或列本身可能会被更改或移动。

对于前5列,您可以尝试以下方法:

select column_name,ordinal_position
  from information_schema.columns
 where table_schema = ...
   and table_name = ...
   and ordinal_position <= 5
选择列名称、顺序位置
从信息_schema.columns
其中,表_schema=。。。
和表_name=。。。

对于前5列,您可以尝试以下方法:

select column_name,ordinal_position
  from information_schema.columns
 where table_schema = ...
   and table_name = ...
   and ordinal_position <= 5
选择列名称、顺序位置
从信息_schema.columns
其中,表_schema=。。。
和表_name=。。。

顺序位置这看起来像是同一个问题(除了他们想要2列,而你想要5/6列):如果你认为列的名称会被更改或者会被移动,那么你就有一个严重的设计问题。表根本不应该经常更改,而且在任何情况下都不应该更改表中的列顺序。您在选择中使用列顺序,而不是在表中使用列顺序。@Chad这正是我要找的,谢谢!没问题,很高兴有帮助@HLGEM:我知道这是一个很难解决的问题,但是结构的设计和数据的编辑不受我的影响,因此我没有资金去改变那里的任何东西。我会制作一个全新的结构,但糟糕的是我老板的决定……这看起来像是同一个问题(除了他们想要2列,而你想要5/6列):如果你认为列名称将被更改或移动,那么你就有严重的设计问题。表根本不应该经常更改,而且在任何情况下都不应该更改表中的列顺序。您在选择中使用列顺序,而不是在表中使用列顺序。@Chad这正是我要找的,谢谢!没问题,很高兴有帮助@HLGEM:我知道这是一个很难解决的问题,但是结构的设计和数据的编辑不受我的影响,因此我没有资金去改变那里的任何东西。我会创建一个全新的结构,但糟糕的是我老板的决定……他需要的是列,而不是行。他需要的是列,而不是行。