Bonjour
j'ai un probleme avec un substring et je vois pas l'erreur
erreur avec dbosubstring(dbo.[T_Infoprod].Ligne;1;4)
Bonjour
j'ai un probleme avec un substring et je vois pas l'erreur
erreur avec dbosubstring(dbo.[T_Infoprod].Ligne;1;4)
j'ai trouvé ca
mais maintenant comment je peux faire pour n'avoir que les chiffres j'ai pas reussi a trouvé sur les tutosselect substring(Libelle,0,4) from Zones_affectation
parce que j'ai des chiffres comme 1 FIN et je ne veux que 1
ca assez clair?
Hello,
Je ne crois pas que tu ai besoin de la table ou pas de cette manière
Bon encore en retard, faut que je réponde plus vite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT SUBSTR(Ligne,1,4) FROM TaTable WHERE TesConditions![]()
« Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
- Confucius -
Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
Tous les cours Office
Solutions d'Entreprise
![]()
merci quand meme a tu une idée pour ne prendre que les chiffres apres un substring ou il faut fair eautre chose
Pas vraiment d'idee, tes chiffres sont toujours en première positioncomme 1 FIN et je ne veux que 1
« Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
- Confucius -
Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
Tous les cours Office
Solutions d'Entreprise
![]()
oui mes chiffres sont en premiere position
j'ai trouvé quelque chose mais c'est avec des caractere je peux surement le modifier pour le faire sur des chiffre
a l'adresse suivante: http://www.developpez.net/forums/sho...ight=substringWITH t AS (SELECT 'qdhjdfgjk@machaine.jdfgdfhlkjmshlms' AS chaine FROM dual
UNION ALL
SELECT 'qdhjdfgjkfghkmlmlmf@machaine.jdfgdf' FROM dual
)
SELECT chaine,
SUBSTR(chaine, 1, INSTR(chaine, '@') -1) AS gauche,
SUBSTR(chaine, INSTR(chaine, '.',-1)+1) AS droite
FROM t
CHAINE GAUCHE DROITE
qdhjdfgjk@machaine.jdfgdfhlkjmshlms qdhjdfgjk jdfgdfhlkjmshlms
qdhjdfgjkfghkmlmlmf@machaine.jdfgdf qdhjdfgjkfghkmlmlmf jdfgdf
qui ne tente rien a rien
Et avec un RTRIM, je crois que ça marche en SQL Server
Pardon j'ai dis une grosse connerie![]()
« Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
- Confucius -
Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
Tous les cours Office
Solutions d'Entreprise
![]()
Ceci devrait fonctionner. Attention, ce type de fonction peut ralentir considérablement le temps d'exécution d'une requête...
Exemple d'utilisation:
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
23
24
25
26
27
28
29
30
31
32 CREATE FUNCTION [dbo].[UDF_GET_NUMBER_FROM_INFOPROD] ( @p_STRING NVARCHAR(2000) ) RETURNS int AS BEGIN DECLARE @v_ID INT, @v_CHAR CHAR(1), @v_TEMP_STRING VARCHAR(2000) SET @v_TEMP_STRING = '' WHILE @v_ID IS NULL AND LEN(@v_TEMP_STRING) < LEN(@p_STRING) BEGIN SET @v_CHAR = SUBSTRING(@p_STRING, LEN(@v_TEMP_STRING) + 1 , 1) IF ISNUMERIC(@v_CHAR) = 1 BEGIN SET @v_TEMP_STRING = @v_TEMP_STRING + @v_CHAR END ELSE BEGIN SET @v_ID = CAST(@v_TEMP_STRING AS INT) END END IF @v_ID = 0 SET @v_ID = NULL RETURN @v_ID END
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DECLARE @t_TEST TABLE (TEST_STRING VARCHAR(100)) INSERT INTO @t_TEST SELECT '123 irehgliurehgiureh' INSERT INTO @t_TEST SELECT '4565 nhgnjrtbnert' INSERT INTO @t_TEST SELECT 'xxxxxxxxxxxxxxxxxxxx' INSERT INTO @t_TEST SELECT '1 egtewr 345345 gergerger' SELECT [dbo].[UDF_GET_NUMBER_FROM_INFOPROD] (TEST_STRING) FROM @t_TEST-----------
123
4565
NULL
1
Partager