0
votes

Prenez la droite String après ^ dans SQL Server

J'ai quelques données dans SQL Server: xxx

sortie souhaitée: xxx


1 commentaires

Surpris Personne n'a dit cela, la meilleure solution absolue serait d'arrêter de stocker des données délimitées comme celle-ci. Il viole 1nf et est une douleur à travailler avec. Bien sûr, nous n'avons pas cette option, mais ce serait le meilleur s'il s'agit d'une option.


6 Réponses :


2
votes

Vous pouvez utiliser droite () avec charindex () & inverse () : xxx

Démo


8 commentaires

@Larnu. . . Désolé, vous devez re-regarder.


@Johncappelletti. . . Vous êtes également re-regarder.


@YOGESHSHARMA Vous avez également reproché dbfiddle.uk/...


Mon commentaire original est incorrect, cependant, cela fonctionne sur l'hypothèse que toutes les valeurs sont la même longueur. C'est une hypothèse médiocre (à mon avis) DB <> Fiddle . Cela obtient efficacement la position du premier ^ et ensuite supposant la valeur dernière sera la même longueur.


@Johncappelletti. . . Dans ce cas, inverse () ferait le tour.


J'ai vu votre correction. Peut-être la prochaine fois que deux membres établis de la communauté soumissionnent une préoccupation, vous ne serez pas aussi défensive.


Yogesh est tout à fait établi, en toute justice. Nous faisons tous des erreurs (et j'ai fait une hypothèse médiocre / incorrecte moi-même lorsque j'ai fait le commentaire original). Reverse , cependant, corrige effectivement le problème. :)


@Larnu a accepté. C'est pourquoi je ne m'attendais pas à cette réponse



1
votes

Une méthode serait de scinder la valeur, à l'aide de délimitedsplit8k_lead puis prenez le "dernier" (en commandant haut à bas). Cette méthode utilise top 1 avec les cravates J'ai utilisé cette méthode comme ordre semble être hors de propos ici : xxx

Cela évite que ce soit un inverse .


0 commentaires

0
votes

Utilisation de CharIndex et inverse:

J'ai laissé toutes les fonctions de là afin que vous puissiez voir le processus. xxx

résultats: xxx


0 commentaires

0
votes

Essayez ceci xxx


0 commentaires

0
votes

En supposant que vous êtes sur SQL Server 2016 +

supposant également ce schéma et données: xxx

la requête: xxx


0 commentaires

0
votes

Si vous êtes sur SQL Server 2017 + xxx


0 commentaires