Heim >Datenbank >MySQL-Tutorial >Kann SQL Server Spaltendaten mithilfe der Ordinalposition abrufen?
Von der Auswahl von Spaltendaten auf Basis von Ordinalpositionen wird im Allgemeinen abgeraten, aber bestimmte Szenarien können ihre Verwendung rechtfertigen. Diese Frage untersucht die Möglichkeit einer solchen Auswahl in SQL Server.
Frage:
Können wir Spaltendaten anhand der Ordnungsposition einer Tabellenspalte abrufen? Betrachten Sie als Beispiel die folgende Tabelle:
create table Test( Col1 int, Col2 nvarchar(10) )
Anstatt anhand des Spaltennamens auszuwählen:
select Col2 from Test
Können wir schreiben:
select "2" from Test -- for illustration purposes only
Antwort:
Während SQL Server die Auswahl von Spalten nach Ordnungsposition nicht nativ unterstützt, kann eine Problemumgehung erfolgen erreicht durch Ausnutzung der kartesischen Produktoperation:
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
Dies führt zu einer Tabelle mit zwei Spalten ([C1] und [C2]), die der Anzahl der Spalten in der Testtabelle entsprechen. Durch Auswahl der zweiten Spalte dieses kartesischen Produkts rufen wir effektiv die Daten aus der zweiten Spalte der Testtabelle ab.
Beachten Sie, dass diese Methode nur für Tabellen mit einer vordefinierten Anzahl von Spalten praktisch ist. Die Verwendung für Tabellen mit einer großen Anzahl von Spalten kann ineffizient und fehleranfällig sein.
Das obige ist der detaillierte Inhalt vonKann SQL Server Spaltendaten mithilfe der Ordinalposition abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!