2016-02-25 3 views
0

У меня есть несколько две строки символов, которые включают в себя такие числа:Исключить буквенные символы из строки на Redshift

01, 02, 03 и т.д., однако, есть и другие, которые выглядят так:

0Р, так как, JJ, F1, F2, XP, PK, TL, WQ

Я ищу, чтобы исключить те из них во второй строке с запросом на красное смещение, используя синтаксис «не нравится». Пробовал несколько комбинаций и не мог заставить его работать. В идеале, я ищу способ исключить любые две строки символов, которые включают алфавитный символ.

ответ

0

Попробуйте с регулярным expresion

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

SELECT * 
    FROM YourTable 
    WHERE columnName REGEXP '[0-9]+'; 

Или, если вы хотите ограничить до двух символов

SELECT * 
    FROM YourTable 
    WHERE columnName REGEXP '[0-9][0-9]'; 

Вы говорите, что хотите to exclude any two character string that includes an alphabetic character.

Это принесет все, где оба символы это число.

+0

не работает (обратите внимание, что я нахожусь на Amazon Redshift). Будет ли синтаксис отличаться? мой код выглядит так: 'where right (column_id, 2) REGEXP '[0-9] [0-9]'' – user2022284

+0

Я нашел другое решение http://stackoverflow.com/questions/5064977/detect-if-value- is-number-in-mysql –

+0

Также у вас есть [** REGEXP_REPLACE **] (http://docs.aws.amazon.com/redshift/latest/dg/REGEXP_REPLACE.html). Вы можете заменить все число для '' ' 'и посмотрим, получится ли строка длины 0, или вся альфа, и посмотрите, будет ли длина одинаковой. Но у меня нет доступа к redshift, чтобы дать вам правильный синтаксис –

Смежные вопросы