虽然通常不鼓励使用序数位置进行列选择,但在某些情况下可能有必要,例如一次性数据导入过程。问题出现了:是否可以使用 SQL Server 中的序数位置来选择列数据?
要详细说明所提供的示例,请考虑下表:
create table Test( Col1 int, Col2 nvarchar(10) )
而不是使用:
select Col2 from Test
我们可以使用以下方法获得相同的结果:
select "2" from Test -- for illustration purposes only
答案是: 否。
SQL Server 不允许根据序数位置选择列。相反,它需要显式指定列名称。因此,提供的第二个示例不是有效的语法。
如果列数已知,但不知道其名称或数据类型,则可以采用解决方法:
select NULL as C1, NULL as C2 where 1 = 0 -- Returns empty table with predefined column names union all select * from Test -- There should be exactly 2 columns, but names and data type doesn't matter
此方法创建具有所需列数的临时表,允许我们使用序号位置作为索引来访问数据。但对于列数较多的表,不建议使用。
以上是可以使用序数位置选择 SQL Server 列吗?的详细内容。更多信息请关注PHP中文网其他相关文章!