12
votes

Comment sélectionner des lignes commençant par le chiffre dans PostgreSQL?

besoin d'obtenir des lignes commençant par DIGIT E.G. '1test', '32 Test '. J'ai essayé xxx

comme je faisais dans MSSQL, mais cela n'a pas réussi.


1 commentaires

merci beaucoup de gars. Cela m'a aidé


3 Réponses :


23
votes

Essayez ceci:

SELECT * FROM table WHERE name ~ '^[0-9]'


1 commentaires

Pour toute personne pouvant bénéficier de cela, si vous voulez le contraire (enregistrements qui commencent par autre à un chiffre), utilisez un opérateur "non" précédent, c'est-à-dire ! ~ '^ [0-9]'



7
votes

Selon The Docs , vous pouvez utiliser similaire à au lieu de comme pour faire une correspondance ressemblant à plus de regex, et ~ pour faire correspondance complète de POSIX REGEX.


0 commentaires

0
votes

Cette solution est probablement plus rapide qu'une expression régulière, car les expressions régulières sont intensives de la CPU:

SELECT ... FROM "table" WHERE substr(name, 1, 1) BETWEEN '0' AND '9';


0 commentaires