Retourner les lignes où le premier caractère est non-alpha
Je suis en train de récupérer toutes les colonnes que de commencer avec tous les caractères non alpha dans SQlite, mais ne semble pas possible de le faire fonctionner. J'ai actuellement reçu ce code, mais il revient à chaque ligne:
SELECT * FROM TestTable WHERE TestNames NOT LIKE '[A-z]%'
Est-il un moyen de récupérer toutes les lignes où le premier caractère de TestNames ne font pas partie de l'alphabet?
alphanumérique? ou tout simplement alpha?
Seulement non-alpha, donc il doit retourner tout début avec
Que
Merci Martin, qui pourrait être la question. Mes compétences SQL n'est pas génial, mais est-il une méthode alternative de l'exécution de quelque chose de similaire?
Seulement non-alpha, donc il doit retourner tout début avec
1,2,_, etc..
)Que
[]
syntaxe SQL Server. vous ne Pouvez pas voir la moindre indication que SQLLite prend en charge dans les docsMerci Martin, qui pourrait être la question. Mes compétences SQL n'est pas génial, mais est-il une méthode alternative de l'exécution de quelque chose de similaire?
OriginalL'auteur XSL | 2012-06-25
Vous devez vous connecter pour publier un commentaire.
Allez-vous d'abord seul caractère?
La fonction substr (peut aussi être appelé comme de gauche() en SQL langues) aidera à isoler le premier caractère dans la chaîne pour vous.
edit:
Peut-être substr(TestNames,1,1) dans sqllite, je n'ai pas de prêt instance pour tester la syntaxe de là.
Ajouté:
Ne semble pas optimal, mais fonctionnellement fonctionne. Pas sûr de ce qu'char commandes il y a à faire une série de lettres dans SQLlite.
J'ai utilisé "haut" pour faire en sorte que vous n'avez pas besoin de faire de majuscules dans les pas de l'état...un peu d'espoir SQLlite sait ce que c'est.
select * from TestTable
)Ne sélectionnez substr(TestNames,1) à partir de tests de renvoyer simplement le premier char pour vous? Si elle le fait, nous avons juste besoin de modifier le pas comme instruction à quelque chose de plus SQLLite sympathique.
substr(TestNames,1,1)
fonctionne bien, donc il semble que lanot like
énoncé de la question.Envie de faire l'idiot? sélectionnez * à partir de TestTable where upper(substr(TestNames,1,1)) not IN ('A','B','C'...) Oui, je suggère que vous fassiez un pas en mettre chaque lettre individuellement. Supérieure signifie qu'il est toujours en majuscules et vous n'aurez pas besoin de vous inquiéter de la baisse des cas. Je ne sais pas si il y a une autre méthode SQLlite de faire un char de gamme. Mettre dans la réponse pour vous.
heres la chaîne complète de gagner du temps pour les autres. sélectionnez * à partir de TestTable where Upper(substr(TestNames,1,1)) not in ('A','B','C','D','E','F','G','H', 'I', 'J','K','L','M','N', 'O', 'P', 'Q', 'R','S', 'T', 'U', 'V', 'W', 'X','Y', 'Z'
OriginalL'auteur Twelfth
essayer
sqlite3 prend en charge regex [ OÙ fld REGEXP <regex>] devrait fonctionner.. quoi urs?
sqlite3, mais lorsque j'utilise ce que j'arrive
no such function: REGEXP
. Cette fonction ne fonctionne pas hors de la boîte et j'ai eu des problèmes en essayant de le faire fonctionner. J'espère éviter les regex pour ce type d'appel stackoverflow.com/questions/5071601/...je belive regexp n'est pas pris en charge hors de la boîte! sqlite.org/lang_expr.html
Il y a peut être une faute de frappe ici. Nous sommes à la recherche pour tous les nonalpha personnages, mais ce sera le retour de tous les caractères alphabétiques, les deux nots ici annuler les uns les autres
OriginalL'auteur Eswar Rajesh Pinapala
SÉLECTIONNEZ * à PARTIR de NC_CRIT_ATTACH OÙ la sous-chaîne(nom de fichier,1,1) PAS COMME '[A-z]%';
DEVRAIT être un peu plus rapide mais il est
A) d'Abord obtenir toutes les données de la première colonne, puis la numérisation.
B) Encore une analyse complète de la table, sauf si vous l'indice de cette colonne.
OriginalL'auteur PCPGMR