kzen.dev
  • Questions
  • Tags
  • Utilisateurs
Notifications
Récompenses
Inscription
Une fois inscrit, vous serez informé des réponses et des commentaires à vos questions.
Connectez-vous
Si vous avez déjà un compte, connectez-vous pour vérifier les nouvelles notifications.
Il y aura des récompenses pour les questions, réponses et commentaires ajoutés.
Détails
Source
Editer
 megastrong001
megastrong001
Question

Comment créer une fonction dans SQL Server

Aidez-moi, s'il vous plaît, comment filtrer des mots en SQL en utilisant une fonction ?

J'ai du mal à l'expliquer, alors je donne un exemple :

ID       |       WebsiteName      |
-----------------------------------
1        |      www.yahoo.com     |
2        |      www.google.com    |
3        |      www.youtube.com   |

Ce que je veux, c'est obtenir le nom du site web. Je veux sélectionner l'enregistrement avec une sortie comme celle-ci. Comment supprimer les caractères 'www.&#39 ; et &#39 ;.com&#39 ; dans l'enregistrement.

ID      |      WebsiteName
--------------------------    
1       |        yahoo

merci pour votre aide :D

59 2013-01-27T18:13:37+00:00 3
 marc_s
marc_s
Question modifiée 27 janvier 2013 в 6:22
Programmation
sql-server-2008
Cette question a 1 réponse en anglais, pour les lire connectez-vous à votre compte.
Solution / Réponse
 marc_s
marc_s
27 janvier 2013 в 6:16
2013-01-27T18:16:51+00:00
Détails
Source
Editer
#18338632

Que pensez-vous de ça ?

CREATE FUNCTION dbo.StripWWWandCom (@input VARCHAR(250))
RETURNS VARCHAR(250)
AS BEGIN
    DECLARE @Work VARCHAR(250)

    SET @Work = @Input

    SET @Work = REPLACE(@Work, 'www.', '')
    SET @Work = REPLACE(@Work, '.com', '')

    RETURN @work
END

et ensuite utiliser :

SELECT ID, dbo.StripWWWandCom (WebsiteName)
FROM dbo.YourTable .....

Bien sûr, cette méthode est sévèrement limitée dans la mesure où elle ne supprimera que www. au début et .com à la fin - rien d'autre (elle ne fonctionnera donc pas sur d'autres noms de machines hôtes comme smtp.yahoo.com et d'autres domaines Internet comme .org, .edu, .de, etc.)

Star Light
Star Light
Réponse modifiée 10 juillet 2017 в 4:17
107
0
Nicole Castle
Nicole Castle
28 janvier 2013 в 4:19
2013-01-28T16:19:47+00:00
Détails
Source
Editer
#18338634

Celle-ci récupère tout ce qui se trouve entre les caractères &quot ;.&quot ;. Veuillez noter que cela ne fonctionnera pas pour les URL plus complexes comme "www.somesite.co.uk&quot ; Idéalement, la fonction devrait vérifier le nombre d'occurrences du caractère &quot ;.&quot ; et choisir la sous-chaîne en conséquence.

CREATE FUNCTION dbo.GetURL (@URL VARCHAR(250))
RETURNS VARCHAR(250)
AS BEGIN
    DECLARE @Work VARCHAR(250)

    SET @Work = @URL

    SET @Work = SUBSTRING(@work, CHARINDEX('.', @work) + 1, LEN(@work))   
    SET @Work = SUBSTRING(@work, 0, CHARINDEX('.', @work))

    --Alternate:
    --SET @Work = SUBSTRING(@work, CHARINDEX('.', @work) + 1, CHARINDEX('.', @work) + 1)   

    RETURN @work
END
12
0
Hamlet Hakobyan
Hamlet Hakobyan
27 janvier 2013 в 6:28
2013-01-27T18:28:49+00:00
Détails
Source
Editer
#18338633

Je peux vous donner une petite astuce, vous pouvez utiliser la fonction T-SQL. Essayez ceci :

SELECT ID, PARSENAME(WebsiteName, 2)
FROM dbo.YourTable .....
7
0
Ajouter une question
Catégories
Toutes
Technologie
Culture / Loisirs
Vie / Arts
Science
Professionnel
Entreprises
Utilisateurs
Tous
Nouveau
Populaire
1
Ilya Smirnov
Enregistré il y a 5 jours
2
Денис Васьков
Enregistré il y a 1 semaine
3
Dima Patrushev
Enregistré il y a 1 semaine
4
sirojidddin otaboyev
Enregistré il y a 2 semaines
5
Елена Гайдамамакинат
Enregistré il y a 2 semaines
DE
ES
FR
ID
IT
JA
KO
NL
PT
RU
TR
ZH
© kzen.dev 2023
Source
stackoverflow.com
sous licence cc by-sa 3.0 avec l'attribution