我有一个数据库表UserTable
CREATE TABLE [UserTable](
[ID] [int] NULL,
[Name] [nvarchar](50) NULL,
[City] [nvarchar](50) NULL
) ON [PRIMARY]
此表包含以下数据
ID Name City ----------- -------------------------------- 1 Vijendra Delhi 2 Singh Noida 3 Shakya New Delhi
现在提问有没有办法找出第一列第一行而没有指定列名(我不想使用任何列名),这就像找出矩阵表示法一样,那就是[1,1]位置。
我可以找到第一列第一行
Select Top 1 City from UserTable
我不想使用列名(City)。
有可能吗? 如果是,请告诉我如何实现这一目标。
答案 0 :(得分:0)
通常,关系数据库没有给定查询中用户未指定的行或列排序的概念。
答案 1 :(得分:0)
通过编写一些代码并使用动态sql,可以快速完成:
declare @field varchar(100), @SQL varchar(500)
set @field = (SELECT top 1 COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = 'UserTable')
set @SQL = 'select top 1 ' + @field + ' from UserTable'
exec (@SQL)
当然可能有更聪明的方法,但这是一个开始
您还可以将所有这些包装在存储过程中,以使其更容易阅读
希望有所帮助
答案 2 :(得分:0)
有关从information_schema.columns中选择列名的信息,请参阅sql select with column name like。
还有一篇文章Perform SELECT without column names,其中包含第3,4和6列。