Bonjour,
je voudrais savoir s'il n'y a pas un moyen simple de convertir une serie de couple de lignes en colonnes :
Exemple
Resultat
456
123
987
345
675
98
En
P1 P2
456 123
987 345
675 98
...
Merci d'avance
Bonjour,
je voudrais savoir s'il n'y a pas un moyen simple de convertir une serie de couple de lignes en colonnes :
Exemple
Resultat
456
123
987
345
675
98
En
P1 P2
456 123
987 345
675 98
...
Merci d'avance
Regarde la fonction "PIVOT".
On ne jouit bien que de ce qu’on partage.
Bonjour,
Si c'est la seule colonne de la table, on peut y adjoindre une colonne de type entier ayant la propriété d'auto-incrémentation, ce qui permet de spécifier une auto-jointure, par exemple :
S'il n'est pas possible d'ajouter la colonne à la table, on peut écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DECLARE @nombres TABLE ( id int NOT NULL IDENTITY , nombre smallint NOT NULL ) INSERT INTO @nombres VALUES (456), (123), (987), (345), (675), (98) SELECT A.nombre AS P1 , B.nombre AS P2 FROM @nombres AS A INNER JOIN @nombres AS B ON A.id + 1 = B.id WHERE A.id % 2 = 1
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 DECLARE @nombres TABLE ( nombre smallint NOT NULL ); INSERT INTO @nombres VALUES (456), (123), (987), (345), (675), (98); WITH CTE AS ( SELECT nombre , ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS n FROM @nombres ) SELECT A.nombre AS P1 , B.nombre AS P2 FROM CTE AS A INNER JOIN CTE AS B ON A.n + 1 = B.n WHERE A.n % 2 = 1;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager