J'utilise:
J'ai les valeurs suivantes dans une table: p>
Table NEW_VALUE à partir de DB USM_System_Change_Detail P>
J'ai besoin d'une requête qui trouve la valeur pour Après avoir utilisé les conseils des collègues, j'ai pu faire partiellement: p> Ceci retourne: p> mais si je supprimais la clause Où, je reçois ceci: p> Mensagem 245, Nevvel 16, Estado 1, Linha 1 txtf_dns_name = code> dans la colonne "dns_texto" et ne renvoie que le résultat. Dans l'exemple, ce ne serait que "first_domain" et "second_domain" p>
La conversion a échoué lors de la conversion de la valeur VARCHAR 'F8543002' vers Type de données Int. P>
blockQuote> p>
3 Réponses :
Vous pouvez utiliser une sous-chaîne Ceci obtient essentiellement la sous-chaîne code> à partir de imbriquée code>. Comme les commentaires indiqués, txtf_dns_nome code> était dans la chaîne, pas txtf_dns_name code> txtf_dns_nome code> à la fin de la chaîne, puis à partir de cette chaîne, obtient la sous-chaîne code> sur la première virgule, qui vous laisse avec votre valeur. P> p>
Declare @Pattern as NVARCHAR(100);
SET @Pattern = 'txtf_contact_name=';
select
SUBSTRING(MyValue, CHARINDEX(@Pattern, MyValue) + LEN(@Pattern), CHARINDEX('=', MyValue, CHARINDEX(@Pattern, MyValue))) as R
from
Table_2
where
MyValue like '%' + @Pattern + '%'
Voici une solution possible en utilisant Si vous en avez besoin comme une solution de table, effectuez simplement ce qui suit, je la divise dans un exemple ci-dessus pour essayer d'expliquer ce qui se passe et de vous donner un exemple de test. P> Solution de table: p> éventuellement meilleure solution de table car cela n'utilise pas autant d'appels vers les fonctions
et réduit les valeurs de chaîne dans la sous-requête une fois chacune: p> remplacer code>, SUBSTRING code>, len code> et charindex code>:
Après avoir utilisé les conseils de collègues, j'ai pu faire partiellement:
Quelle version de SQL Server? S'il vous plaît aussi poster le SQL que vous avez essayé.
Quelle version de SQL-Server utilisez-vous?
Aussi ... je pense qu'il y a une erratum dans la chaîne que vous avez postée comme valeur txtf_dns_name n'est pas dans votre exemple
Bâtiment de l'ange M. dans votre exemple de chaîne, c'est
txtf_dns_nome = code> pastxtf_dns_name = code>Veuillez indiquer votre tentative d'utiliser la sous-chaîne et quelle erreur vous avez eue.
Microsoft SQL Server 2016 (SP1) (x64) sur Windows Server 2012 R2