Bien que l'utilisation des positions ordinales pour la sélection des colonnes soit généralement déconseillée, cela peut être nécessaire dans certains scénarios, tels qu'une processus d’importation de données. La question se pose : est-il possible de sélectionner des données de colonne en utilisant la position ordinale dans SQL Server ?
Pour développer l'exemple fourni, considérons le tableau suivant :
create table Test( Col1 int, Col2 nvarchar(10) )
Au lieu d'utiliser :
select Col2 from Test
Pouvons-nous obtenir le même résultat en utilisant :
select "2" from Test -- for illustration purposes only
La réponse est : non.
SQL Server ne permet pas de sélectionner des colonnes en fonction de la position ordinale. Au lieu de cela, cela nécessite de spécifier explicitement les noms de colonnes. Par conséquent, le deuxième exemple fourni n'est pas une syntaxe valide.
Si le nombre de colonnes est connu mais pas leurs noms ou types de données, une solution de contournement peut être utilisée :
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
Cette méthode crée une table temporaire avec le nombre de colonnes requis, nous permettant d'accéder aux données en utilisant la position ordinale comme index. Cependant, il n'est pas recommandé pour les tableaux comportant un grand nombre de colonnes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!