在 informix DB 中是不是定义了任何 alpha 逻辑

Posted

技术标签:

【中文标题】在 informix DB 中是不是定义了任何 alpha 逻辑【英文标题】:is there are any alpha logic define in informix DB在 informix DB 中是否定义了任何 alpha 逻辑 【发布时间】:2020-01-22 10:42:11 【问题描述】:

我正在使用 informix DB,我需要在最后一个字符上获取包含 alpha [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)

有什么方法可以写 where SUBSTR(trim(customer),-1,1)=alpha 而不是写 SUBSTR(trim(customer),-1,1)!='0' 和 SUBSTR(trim(customer),-1,1)!='1' 和 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' 和 SUBSTR(trim(customer),-1,1)!='9'

【问题讨论】:

【参考方案1】:

如果您有“最新”版本的 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.

>

【讨论】:

【参考方案2】:

您可以使用任何版本都支持的 Informix MATCHES 运算符。 查询将是这样的:

select * from table_name 
 where customer matches "*[A-Za-z]"

【讨论】:

以上是关于在 informix DB 中是不是定义了任何 alpha 逻辑的主要内容,如果未能解决你的问题,请参考以下文章

如何从 AWS Lambda Python 连接到 Informix DB

表列表(在 DB2、SQL Server、Informix 和 Oracle 中)

SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase(代码片

Informix 中的数据库别名

在 Informix DB 中更改表查询

在 Informix DB 中将字符串转换为日期