在 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(代码片