3

重複の可能性:
列の序数位置を使用してSQLサーバーデータを選択することは可能ですか?

タイトルが役立つかどうかはわかりませんが、一般的な関数を作成しようとしていて、WHEREステートメントで列名の代わりに列の位置を使用できるかどうか疑問に思っていました。だから例えば

SELECT * FROM table WHERE myID=1

こんな感じになります

SELECT * FROM table WHERE [0]=1

これは意味がありますか?それは実行可能ですか?みんなありがとう。

ところで-MSSQL2005-2008の使用

4

2 に答える 2

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)
于 2012-06-05T01:03:34.213 に答える
0

不可能だと思いますが、文字列で動的にクエリを作成し、EXECで実行することはできます。

    DECLARE @query VARCHAR(100)
    SET @query = 'SELECT * FROM Table WHERE field = ' + CONVERT(VARCHAR(10), 100)
    EXEC (@query)
于 2012-06-04T15:13:30.627 に答える