Maison >base de données >tutoriel mysql >Pouvez-vous sélectionner des colonnes SQL Server en utilisant la position ordinale ?

Pouvez-vous sélectionner des colonnes SQL Server en utilisant la position ordinale ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 14:14:11414parcourir

Can You Select SQL Server Columns Using Ordinal Position?

Sélection de données SQL Server à l'aide de la position ordinale des colonnes

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn