ホームページ >データベース >mysql チュートリアル >SQL Server は序数を使用して列データを取得できますか?
順序位置に基づいて列データを選択することは一般的に推奨されませんが、特定のシナリオでは使用が正当化される場合があります。この質問では、SQL Server でのこのような選択の可能性について検討します。
質問:
テーブル列の序数位置を使用して列データを取得できますか?例として、次のテーブルについて考えてみましょう:
create table Test( Col1 int, Col2 nvarchar(10) )
列名を使用して選択する代わりに:
select Col2 from Test
次のように記述できますか?
select "2" from Test -- for illustration purposes only
回答:
SQL Server はネイティブで列の選択をサポートしていません。序数の場合、回避策はデカルト積演算を利用することで達成できます:
select NULL as C1, NULL as C2 where 1 = 0 -- Returns empty table with predefined column names union all select * from Test -- There should be exactly 2 columns, but names and data type doesn't matter
これにより、テストの列数と一致する 2 つの列 ([C1] と [C2]) を持つテーブルが作成されます。テーブル。このデカルト積の 2 番目の列を選択すると、Test テーブルの 2 番目の列からデータが効果的に取得されます。
この方法は、事前定義された数の列を持つテーブルでのみ実用的であることに注意してください。多数の列を持つテーブルにこれを使用すると、非効率になり、エラーが発生しやすくなります。
以上がSQL Server は序数を使用して列データを取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。