【问题标题】:Can i user a where statement by first column? [duplicate]我可以使用第一列的 where 语句吗? [复制]
【发布时间】:2012-06-05 09:03:34
【问题描述】:

可能重复:
Is it possible to select sql server data using column ordinal position

不确定标题是否有帮助,但我正在尝试创建一个通用函数,我想知道是否可以在 WHERE 语句中使用列位置而不是列名。比如

SELECT * FROM table WHERE myID=1

会变成这样的

SELECT * FROM table WHERE [0]=1

这有意义吗?可行吗?多谢你们。

顺便说一句 - 使用 MSSQL 2005-2008

【问题讨论】:

标签: sql-server sql-server-2008 sql-server-2005


【解决方案1】:

我认为您必须获取列位置的列名并使用列名生成执行查询。 下面的代码帮助您获取列位置的列名并执行您的查询:

Declare @TableName  VarChar(100)
Declare @ColumnPosition int

Set @TableName = 'Table1'
Set @ColumnPosition = 1

Declare @ColumnName VarChar(250)
SELECT @ColumnName  = COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName and ORDINAL_POSITIO = @ColumnPosition

Declare @Query VarChar(250)
Set @Query = 'Select * From ' + @TableName + ' Where '+ @ColumnName + ' = 1'
Exec (@Query)

【讨论】:

    【解决方案2】:

    我认为不可能,但您可以在字符串中动态创建查询,然后使用 EXEC 运行它。

        DECLARE @query VARCHAR(100)
        SET @query = 'SELECT * FROM Table WHERE field = ' + CONVERT(VARCHAR(10), 100)
        EXEC (@query)
    

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2017-05-07
      • 1970-01-01
      • 2012-04-28
      • 2013-04-13
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      相关资源
      最近更新 更多