Rumah >pangkalan data >tutorial mysql >Bolehkah SQL Server Mendapatkan Data Lajur Menggunakan Kedudukan Ordinal?

Bolehkah SQL Server Mendapatkan Data Lajur Menggunakan Kedudukan Ordinal?

Linda Hamilton
Linda Hamiltonasal
2024-12-31 16:39:13686semak imbas

Can SQL Server Retrieve Column Data Using Ordinal Position?

Adakah Pemilihan Lajur Berdasarkan Kedudukan Ordinal Mungkin dalam Pelayan SQL?

Memilih data lajur berdasarkan kedudukan ordinal secara amnya tidak digalakkan, tetapi senario tertentu mungkin memerlukan penggunaannya. Soalan ini meneroka kemungkinan pemilihan sedemikian dalam SQL Server.

Soalan:

Bolehkah kita mendapatkan semula data lajur menggunakan kedudukan ordinal lajur jadual? Sebagai contoh, pertimbangkan jadual berikut:

create table Test(
    Col1 int,
    Col2 nvarchar(10)
)

Daripada memilih menggunakan nama lajur:

select Col2 from Test

Bolehkah kita menulis:

select "2" from Test -- for illustration purposes only

Jawapan:

Walaupun SQL Server tidak menyokong pemilihan lajur mengikut kedudukan ordinal, penyelesaian boleh dicapai dengan mengeksploitasi operasi produk Cartesian:

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

Ini menghasilkan jadual dengan dua lajur ([C1] dan [C2]) yang sepadan dengan bilangan lajur dalam jadual Ujian. Dengan memilih lajur kedua produk Cartesian ini, kami mengambil semula data secara berkesan daripada lajur kedua jadual Ujian.

Perhatikan bahawa kaedah ini hanya praktikal untuk jadual dengan bilangan lajur yang telah ditetapkan. Menggunakannya untuk jadual dengan bilangan lajur yang banyak boleh menjadi tidak cekap dan terdedah kepada ralat.

Atas ialah kandungan terperinci Bolehkah SQL Server Mendapatkan Data Lajur Menggunakan Kedudukan Ordinal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn