Während die Verwendung von Ordinalpositionen für die Spaltenauswahl im Allgemeinen nicht empfohlen wird, kann dies für bestimmte Szenarien, z. B. einmalig, erforderlich sein Datenimportprozesse. Es stellt sich die Frage: Ist es möglich, Spaltendaten mithilfe der Ordinalposition in SQL Server auszuwählen?
Um das bereitgestellte Beispiel näher zu erläutern, betrachten Sie die folgende Tabelle:
create table Test( Col1 int, Col2 nvarchar(10) )
Anstatt zu verwenden:
select Col2 from Test
Können wir das gleiche Ergebnis erzielen mit:
select "2" from Test -- for illustration purposes only
Die Antwort lautet: Nein.
SQL Server erlaubt keine Auswahl von Spalten basierend auf der Ordinalposition. Stattdessen müssen die Spaltennamen explizit angegeben werden. Daher ist das zweite bereitgestellte Beispiel keine gültige Syntax.
Wenn die Anzahl der Spalten bekannt ist, aber nicht ihre Namen oder Datentypen, kann eine Problemumgehung angewendet werden:
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
Diese Methode erstellt eine temporäre Tabelle mit der erforderlichen Anzahl von Spalten, die uns den Zugriff auf die Daten über die Ordinalposition als Index ermöglicht. Es wird jedoch nicht für Tabellen mit einer großen Anzahl von Spalten empfohlen.
Das obige ist der detaillierte Inhalt vonKönnen Sie SQL Server-Spalten mithilfe der Ordinalposition auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!