ホームページ >データベース >mysql チュートリアル >直接アクセスがサポートされていない場合、列の序数位置を使用して SQL Server データを取得するにはどうすればよいですか?

直接アクセスがサポートされていない場合、列の序数位置を使用して SQL Server データを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-31 05:36:12734ブラウズ

How Can I Retrieve SQL Server Data Using Column Ordinal Position When Direct Access Is Not Supported?

列の序数位置を使用した SQL Server データの取得

列の選択に序数位置を使用することは一般的に推奨されませんが、推奨されるシナリオもあります。 1 回限りのデータ インポート プロセスなど、特定のタスクに必要です。次の例を考えてみましょう:

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

これにより、[C1] および [C2] という名前の 2 つの事前定義された列を持つ空のテーブルが作成されます。その後、テスト テーブルのデータをこの空のテーブルに結合して、列が正しく配置されるようにすることができます。

この方法は、多数の列があるテーブルには特に役に立ちません。ただし、事前に列数が決まっているテーブルの場合は便利なソリューションとなります。

以上が直接アクセスがサポートされていない場合、列の序数位置を使用して SQL Server データを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。