SQL Server équivalent de substring_index fonction dans MySQL
Je suis en train de le port d'une requête à partir de MySQL pour SQL SERVER 2012.
Comment puis-je écrire un équivalent pour MySQL substring_index()?
MySQL SUBSTRING_INDEX() retourne la sous-chaîne d'une chaîne donnée avant un certain nombre d'occurrences d'un séparateur.
SUBSTRING_INDEX(str, delim, comte)
SELECT SUBSTRING_INDEX('www.somewebsite.com','.',2);
De sortie: 'www.somewebsite'
- il n'y a pas d'équivalent direct . vous aurez besoin d'écrire votre propre.
- Trouvé un implelemtation ici.
Vous devez vous connecter pour publier un commentaire.
Essayer cette solution basée sur des T-SQL et XQuery(
(root/row)[position() <= sql:variable("@count")]
):T-SQL fonction Scalaire:
De sortie:
ou
TSQL Fonction Table en ligne:
De sortie:
J'avais besoin de cela récemment, donc j'ai écrit cette fonction stockée. À la fin sont un tas de tests pour vérifier qu'il fonctionne exactement comme la fonction MySql n' (les résultats attendus ont été copiés à partir de MySql après ces tests là):
Voici une version inspirée par Bogdan Sahlean's réponse à l'aide de SQL Server XML de la fonctionnalité permettant d'effectuer l'analyse et la combinaison de:
Exécutant les tests de ce produit:
à droite
select dbo.FN_SUBSTRING_INDEX(N'prueba','ue',1);
à gauche
select dbo.FN_SUBSTRING_INDEX(N'prueba','ue", -1);
Essayer Celui-Ci.....