J'ai une table 1: alors, j'ai une chaîne 'abc ~ xyz ~ 123'. J'ai besoin de diviser cette chaîne en chaque mot à l'aide de SQL: p> Le retour est TABLE2 P> ABC|3
XYZ|2
123|1
3 Réponses :
Outre les suggestions telles que dans le commentaire, vous pouvez utiliser Comptez () fonction comme ci-dessous. Mais le stockage de ce format vous donnera des difficultés pour l'extraction ainsi que dans la jointure avec les autres tables.
CREATE TABLE table1( TableValue varchar(max) ); INSERT INTO table1 (TableValue) values ( 'XYZ'); INSERT INTO table1 ( TableValue) values ( 'ABC'); INSERT INTO table1 ( TableValue) values ( 'XYZ~ABC~AAA'); INSERT INTO table1 ( TableValue) values ( '123~ABC'); SELECT b.value ,Count(*) FROM ( SELECT VALUE FROM STRING_SPLIT('ABC~XYZ~123', '~') ) a INNER JOIN ( SELECT * FROM table1 CROSS APPLY STRING_SPLIT(TableValue, '~') ) b ON a.Value = b.Value GROUP BY b.Value
Ce n'est pas ce que je veux dire. Parce que j'ai une table et une chaîne. Ce que je dois faire est de: 1. Split la chaîne en mot séparé 2. Comptez combien de fois chaque mot existait dans la table fournie.
@Hungnguyen Si vous avez une idée claire sur les jointures et comptez, vous pouvez le faire facilement. J'ai donné une idée de résoudre vos problèmes.
J'ai mis à jour mon article pour le rendre plus clair. S'il vous plaît se référer ci-dessus
@Hungnguyen Veuillez vérifier la version modifiée de la réponse et vous demander de mettre à jour la syntaxe de la table Créer une version appropriée dans votre question.
Si je comprends votre cas correctement, l'instruction suivante peut aider:
Texte et tableau: P>
----------- Word Count ----------- ABC 3 XYZ 2 123 1
@Hungnguyen Vous devez accepter la meilleure solution de travail qui vous convient, car il a également aidé les autres à trouver la réponse rapidement.
Configuration Calcul: p> résultat p> Exemple en direct :
https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=15b95efcf69ea98fafbb7dda1c624551 p> < / p>
Avez-vous envisagé d'utiliser la fonction nommée apte,
compte code>?
Vous devez sérieusement envisager de vous éloigner de la conservation de plusieurs valeurs distinctes de plusieurs
code> dans un seul enregistrement. normaliser i> vos données.