Bonjour
j'ai un probleme avec un substring et je vois pas l'erreur
erreur avec dboCitation:
substring(dbo.[T_Infoprod].Ligne;1;4)
Version imprimable
Bonjour
j'ai un probleme avec un substring et je vois pas l'erreur
erreur avec dboCitation:
substring(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 tutosCitation:
select 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 :oops:Code:
1
2
3 SELECT SUBSTR(Ligne,1,4) FROM TaTable WHERE TesConditions
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 positionCitation:
comme 1 FIN et je ne veux que 1
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=substringCitation:
WITH 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 :roll:
Pardon j'ai dis une grosse connerie :fou:
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:
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:
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
Citation:
-----------
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 chiffresCitation:
SELECT [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 :yaisse2: