Bonjour, je suis un petit nouveau et I need you help ! :p
Voilà je dois imbriquer les colonnes C1,C2,C3 et C4 dans la colonne C10 de cette manière :
Pouvez-vous m'éclairer ?
C1 C2 C3 C4 C10 108 AZ 000 200002111221 108AZ000200002111221
Bonjour, je suis un petit nouveau et I need you help ! :p
Voilà je dois imbriquer les colonnes C1,C2,C3 et C4 dans la colonne C10 de cette manière :
Pouvez-vous m'éclairer ?
C1 C2 C3 C4 C10 108 AZ 000 200002111221 108AZ000200002111221
La colonne C10 existe déjà ou doit être créée ?
Email : http://scr.im/waldar
la colonne 10 existe déjà !
dsl de ne pas l'avoir mentionné
C'est ça que tu veux faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE matable SET C10 = C1 || C2 || C3 || C4
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
ça doit être cela néanmoins j'ai ce résultat :
ERREUR: la colonne « C1» n'existe pas
LINE 2: SET C10 = C1 || C2 || C3
mais elle est bien créée
Après il faut aussi que vous mettiez les bons noms de colonne !
Récupérez avec pgAdmin III le script de création de la table et postez-le ici.
Email : http://scr.im/waldar
Hooo ! quel idiot j'ai trouvé mon erreur. En effet, certains noms de colonnes sont avec "C" et d'autres non.
Mille excuses pour cela !!!
Et ça fonctionne parfaitement, merci !
Puis-je vous importuner une nouvelle fois, sur le même exemple, mais avec un résultat différent.
Voilà, j'ai toujours plusieurs colonnes que je désire imbriquer en une, mais cette fois, l'une d'elle peut avoir 2 types de valeurs : soit '0X' ou 'XX'.
S'il s'agit de 0X, je veux faire apparaître un espace ' ' à la place du '0'.
Mais s'il s'agit de 'XX', dans ce cas rien ne change. Comment faire SVP ?
ex :
C1 C2 C3 C4 C10 000 0X abc 0X00XX 000 Xabc0X00XX 000 XX abc 0X00XX 000XXabc0X00XX
Code : Sélectionner tout - Visualiser dans une fenêtre à part CASE macolonne WHEN '0X' THEN ' X' ELSE 'XX' END
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
Le 0X et XX sont des exemples de données.
Le premier 0X sera toujours de la forme chiffre 0 et une lettre aléatoire.
Mais le second sera composé de 2 lettres aléatoires
c'est magnifique cette commande CASE merci ! voici mon résultat :
Impec Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE MaTable SET C10 =( CASE when "C2"~~'0%' then "C1" || "C3"|| "C4" || ' ' || TRIM(LEADING '0' FROM "C2") || "C5" else "C1" || "C3"|| "C4" || "C2" || "C5" end )
Le case me paraît un poil complexe ici, un replace suffit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE MaTable SET C10 = "C1" || "C3"|| "C4" || replace("C2", '0', ' ') || "C5" WHERE C10 <> "C1" || "C3"|| "C4" || replace("C2", '0', ' ') || "C5";
Email : http://scr.im/waldar
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