id name desc
-------------------------
1 kkt kkt description
1 skt skt description
「sample_table」以下の表を考えてみましょうそこにある列を選択するとにかく、私はその名前desc
を使用せずに、3番目の列を選択することができますか? select desc from mytable
をしようと
はエラー
をスロー示唆してください。
おかげで、
バラン
id name desc
-------------------------
1 kkt kkt description
1 skt skt description
「sample_table」以下の表を考えてみましょうそこにある列を選択するとにかく、私はその名前desc
を使用せずに、3番目の列を選択することができますか? select desc from mytable
をしようと
はエラー
をスロー示唆してください。
おかげで、
バラン
私はこれがなぜ必要なのか分からず、は決して自分で使います。
declare @T table
(
id int,
name varchar(10),
description varchar(25)
)
insert into @T values
(1, 'kkt', 'kkt description'),
(1, 'skt', 'skt description')
select T2.N.value('*[3]', 'varchar(max)')
from (select *
from @T
for xml path('r'), type) as T1(X)
cross apply T1.X.nodes('/r') as T2(N)
更新
代わりに、次のように行う必要があります。
select [desc]
from YourTable
使用[]
言葉に予約されている列名の周り。
私のクライアントのデータベースでは、彼らは説明のための "desc"と呼ばれるフィールドを使用しているが、私は 'エラーをスローします。なぜインデックスを介してカラムにアクセスしようとしているのですか? – balanv
@balanv - 予約語であるカラム名の前後に '[]'を使用してください。更新された答え。 –
は、このヘルプを行います。
Declare @WhichOne int;
Declare @Sql varchar(200);
SET @WhichOne = 2;
WITH cte AS
(SELECT name, Row_Number() Over (ORDER BY column_id) AS rn
FROM sys.COLUMNS
WHERE Object_Name(object_id) = 'MyTable')
SELECT @Sql = 'Select ' + QuoteName(name) + ' From MyTable'
FROM cte
WHERE rn = @WhichOne;
Exec(@Sql);
http://www.daniweb.com/web-development/databases/ms-sql/threads/341388
からは、足で自分自身を撮影する行くことができるだけので、ここであなたがそれを行うことができる方法です動的SQL:
DECLARE @sql NVARCHAR(MAX)
select
@sql = 'SELECT ' + COLUMN_NAME + ' FROM YourTable'
from INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='YourTable'
AND ORDINAL_POSITION=3
exec sp_executeSQL @sql
予約語である列名の周りに標準のSQL引用符付き識別子を使用します。
SELECT "desc" FROM sample_table;
'\' desc \ ''は動作しますが、 '' desc "'は私のためには機能しませんでした。あなたはあなたの答えに追加することができます。 –
@VikasGautam:あなたはそれを標準SQLではありません。 MySQL? – onedaywhen
mytable.descからmytableを選択してください。私にとって
作業罰金は
** NO **あなたは数値インデックスによって、SQL Serverの列にアクセスすることはできません....あなたはいけない、どちらか - リレーショナルテーブル内の列の順序**されます意味のない**とそれに依存するコードを書くべきではありません –
動的SQLがなければ、本当に悪い考えになるでしょう。誰かがテーブルの列の順序を変更するとどうなりますか。 – Jamiec
Ok ..私はこのメソッドを使用しません..言及ありがとう.. – balanv