Bien le bonjour,
J'aimerais créer un ID avec des morceaux d'infos de plusieurs colonnes dans une même table :
ID = les 3 premiers chiffres de C1 || la ou les lettres présentes dans C2 || et les 4 derniers de C2 sans le ou les zéros du début.
C2 peut avoir ces formes-là : 000XX0000 / 000X0000 / XX0000 / X0000 les X représentent bien sûr des lettres et 0 des chiffres.
Donc j'ai commencé par ajouter une colonne ID
Pour ensuite lui rajouter les infos
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ALTER TABLE meddi2014_62temp ADD "ID" character varying(11)
Et enfin transformer ID en PRIMARY KEY.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 UPDATE MaTable set "ID" =( CASE WHEN "C2" ~~ '%[a-z][a-z]%' THEN LEFT("C1",3) || LEFT(RIGHT("C2",6),2) || TRIM(LEADING '0' FROM (RIGHT("C2",4))) WHEN "C2" ~~ '%[a-z]%' THEN LEFT("C1",3) || LEFT(RIGHT("C2",5),1) || TRIM(LEADING '0' FROM (RIGHT("C2",4))) WHEN "C2" ~~ '[a-z][a-z]%' THEN LEFT("C1",3) || LEFT("C2",2) || TRIM(LEADING '0' FROM (RIGHT("C2",4))) WHEN "C2" ~~ '[a-z]%' THEN LEFT("C1",3) || LEFT("C2",1) || TRIM(LEADING '0' FROM (RIGHT("C2",4))) ELSE '' END
Je ne sais pas si c'est la bonne méthode, mais je sais que mon code ne marche pas ;p
Partager