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
![]()
Select SUBSTRing(Libelle,1,INSTR(Libelle, ' ')-1) From Zones_affectation
Probleme avec le INSTR il ne connait pas!!!
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
Merci pour cette réponse
mais je debute donc ou dois je mettre le CREATE FUNCTION?
j'ai créée deux requetes une pour le creae function et l'autre avecca me sort bien que les chiffresSELECT [dbo].[UDF_GET_NUMBER_FROM_INFOPROD] (Libelle) FROM Zones_affectation
Comment puis je l'integrer dans une requete ?
tu comprends ce que je veux dire ou pas?
grace a l'aide d'un developpeur babyneedle il m'a trouvé la solution pour mon probleme(j'avais une autre discussion mais je voulais savoir si je pouvais faire autrement)
Les deux solutions marchent a merveille reste a savoir pour celle ci ou dois je la mettre pour quelle soit valable tout le temps (j'en ai aucune idée)
heureusement que ce forum existe!!!
La fonction CREATE FUNCTION se met directement dans le parametre "Fonction définies par l'utilisateur" après pour le select on l'utilise dans l'analyseur de requete
merci a tous![]()
Partager