Requête SQL pour un retour chariot dans une chaîne de caractères et, finalement, la suppression de retour chariot
Requête SQL pour un retour chariot dans une chaîne de caractères et, finalement, la suppression de retour chariot
J'ai des données dans une table et il y a quelques retours chariot dans des endroits où je n'en veulent pas. Je suis en train d'écrire une requête pour obtenir toutes les chaînes qui contiennent des retours chariot.
J'ai essayé ce
select * from Parameters
where Name LIKE '%"\n" %'
Aussi
select * from Parameters
where Name LIKE '\r'
'
Les deux sont valables SQL, mais ne sont pas de retour à ce que je suis à la recherche d'. Ai-je besoin pour utiliser le Comme de commande ou d'une autre commande? Comment puis-je obtenir le retour chariot dans la requête?
Le retour chariot n'est pas nécessairement à la fin de la ligne (peut être dans le milieu).
- était-ce pour sql server?
Vous devez vous connecter pour publier un commentaire.
ce sera lent, mais si elle est à une seule chose, essayez de...
Noter que la norme ANSI SQL opérateur de concaténation de chaîne est "||", donc, il faudra peut-être:
chr
au lieu dechar
.||
utilisé dans une chaîne SQL au lieu deOR
. Quand est-ce une préoccupation?||
dans les SQL que j'ai fait. Je n'ai jamais vraiment me préoccuper de la norme ANSI SQL equivelents. J'ai juste le code pour la base de données actuelle et être fait avec elle. Dans mon expérience, vous n'allez jamais à convertir à partir d'un fournisseur de base de données à l'autre. Chaque vendeur a ajouté de nombreuses autres commandes SQL ou de variations au-delà et/ou à la place de l'ANSI normes, qui font qu'il est pratiquement impossible de coder quelque chose de complexe et d'être 100% compatible ANSI.La question principale était de supprimer les CR/LF. À l'aide de la remplacer et de char fonctions qui fonctionne pour moi:
Pour Postgres, Oracle SQL, utilisez la fonction CHR place:
Dans SQL Server je voudrais utiliser:
Cette recherche à la fois retours chariot et ligne de flux.
Si vous voulez la recherche pour onglets trop juste ajouter:
Vous pouvez également utiliser des expressions régulières:
cela fonctionne:
select * from table where colonne like '%(appuyez sur entrée)%'
Ignorer les crochets et appuyez sur entrée pour introduire de nouveaux ligne.
Vous pouvez créer une fonction:
Ensuite, vous pouvez simplement exécuter une requête comme ceci:
Omettre les guillemets doubles à partir de votre première requête.
Cela fonctionne aussi
Quelque chose comme cela semble fonctionner pour moi: