Bonjour à tous,
Je dois récupérer le dernier numéro à la suite d'un segment.
Exemple :Voilà le code de test que j'ai écris jusqu'ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Exemple #1 : Pour le segment '1.1.2', je veux récupérer le '2' Exemple #2 Pour le segment '10.12,, je veux récupérer le '12' Exemple #3 Pour le segment '5', je veux récupérer le '5'
Le problème, c'est que MS SQL me retourne l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT CASE WHEN CHARINDEX('.', '1') = 0 THEN '1' ELSE RIGHT('1', CHARINDEX('.', REVERSE('1')) - 1) /* Ou cette méthode alternative SUBSTRING('1', LEN('1') - CHARINDEX('.', REVERSE('1')) + 2, LEN('1') - (LEN('1') - CHARINDEX('.', REVERSE('1')) + 1)) */ END
Paramètre de longueur non valide passé à la fonction substring.
C'est n'importe quoi ! Comment la première condition du case peut-elle échouer ?
CHARINDEX('.', '1') donne bien 0 comme résultat, alors pourquoi va-t-il dans le ELSE ???
Merci
Partager