タイトルが役立つかどうかはわかりませんが、一般的な関数を作成しようとしていて、WHEREステートメントで列名の代わりに列の位置を使用できるかどうか疑問に思っていました。だから例えば
SELECT * FROM table WHERE myID=1
こんな感じになります
SELECT * FROM table WHERE [0]=1
これは意味がありますか?それは実行可能ですか?みんなありがとう。
ところで-MSSQL2005-2008の使用
タイトルが役立つかどうかはわかりませんが、一般的な関数を作成しようとしていて、WHEREステートメントで列名の代わりに列の位置を使用できるかどうか疑問に思っていました。だから例えば
SELECT * FROM table WHERE myID=1
こんな感じになります
SELECT * FROM table WHERE [0]=1
これは意味がありますか?それは実行可能ですか?みんなありがとう。
ところで-MSSQL2005-2008の使用
列位置の列名を取得し、列名で実行クエリを生成する必要があると思います。以下のコードは、列位置の列名を取得してクエリを実行するのに役立ちます。
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)
不可能だと思いますが、文字列で動的にクエリを作成し、EXECで実行することはできます。
DECLARE @query VARCHAR(100)
SET @query = 'SELECT * FROM Table WHERE field = ' + CONVERT(VARCHAR(10), 100)
EXEC (@query)