есть ли какие-то альфа-логи c определите в БД informix - PullRequest
0 голосов
/ 22 января 2020

Я использую БД informix, мне нужно получить записи, содержащие буквенный символ [A-Za-z] на последнем символе, что я пытаюсь сделать так:

select * from table_name 
where (SUBSTR(trim(customer),-1,1)!='0' and SUBSTR(trim(customer),-1,1)!='1' and SUBSTR(trim(customer),-1,1)!='2' and SUBSTR(trim(customer),-1,1)!='3' and SUBSTR(trim(customer),-1,1)!='4' and SUBSTR(trim(customer),-1,1)!='5' and SUBSTR(trim(customer),-1,1)!='6' and SUBSTR(trim(customer),-1,1)!='7' and SUBSTR(trim(customer),-1,1)!='8' and SUBSTR(trim(customer),-1,1)!='9') or (SUBSTR(trim(customer),-1,1)=' ') or (SUBSTR(trim(customer),-1,1)='') or (customer IS NULL)

, если есть какой-либо способ записи где SUBSTR (отделка (заказчик), - 1,1) = альфа вместо записи SUBSTR (отделка (заказчик), - 1,1)! = '0' и SUBSTR (отделка (заказчик) , -1,1)! = '1' и SUBSTR (отделка (клиент), - 1,1)! = '2' и SUBSTR (отделка (заказчик), - 1,1)! = '3' и SUBSTR ( отделка салона (заказчик), - 1,1)! = '4' и SUBSTR (отделка салона (заказчик), - 1,1)! = '5' и SUBSTR (отделка (заказчик), - 1,1)! = '6 'и SUBSTR (отделка (заказчик), - 1,1)! =' 7 'и SUBSTR (отделка (заказчик), - 1,1)! =' 8 'и SUBSTR (отделка (заказчик), - 1,1) ! = '9'

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Вы можете использовать оператор Informix MATCHES, который поддерживается в любой версии. Запрос будет выглядеть так:

select * from table_name 
 where customer matches "*[A-Za-z]"
0 голосов
/ 22 января 2020

Если у вас есть «последняя» версия Informix (все, что должно быть более 12.10), вы можете использовать regex_match ():

https://www.ibm.com/support/knowledgecenter/SSGU8G_14.1.0/com.ibm.dbext.doc/ids_dbxt_544.htm

что-то вроде :

> select * from table(set{'test','test1','tesT'})
  where regex_match(unnamed_col_1, '[a-zA-Z]$');

unnamed_col_1

test
tesT

2 row(s) retrieved.

>
...