2012-06-04 32 views
2

可能重複:
Is it possible to select sql server data using column ordinal position我可以使用第一列的where語句嗎?

不知道標題的幫助,但我試圖建立一個通用的功能,我想知道如果我能在使用的列位置我WHERE語句而不是列名。因此,例如

SELECT * FROM table WHERE myID=1

會變成這樣的事情

SELECT * FROM table WHERE [0]=1

這是否有道理?它可行嗎?多謝你們。

BTW - 使用MSSQL 2005-2008

+2

已經涵蓋在這個職位:http://stackoverflow.com/questions/368505/is-it-possible-to-select -sql-server-data-using-column-ordinal-position –

回答

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) 
0

,我認爲是不可能的,但你可以在一個字符串的EXEC dinamically創建查詢的運行。

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

感謝您的回覆。 – Damien

相關問題