在 Vertica 中,什么表达式会忽略包含任何数字的结果?
In Vertica, what expression will omit results that contain any numeral?
我需要查询存储地址的 Vertica 数据库并获取 varchar
不包含数字的结果。
对于 SQL 服务器有人建议:
SELECT *
FROM Table
WHERE Column NOT LIKE '%[0-9]%'
但这在 Vertica 中不起作用,这意味着我返回的每个地址在 address1 字段中都有和没有数字。我可以执行以下操作,但它很笨重:
select *
from [TABLE_NAME]
where [FIELD] NOT like '%0%'
and [FIELD] NOT like '%1%'
and [FIELD] NOT like '%2%'
and [FIELD] NOT like '%3%'
and [FIELD] NOT like '%4%'
and [FIELD] NOT like '%5%'
and [FIELD] NOT like '%6%'
and [FIELD] NOT like '%7%'
and [FIELD] NOT like '%8%'
and [FIELD] NOT like '%9%';
是否有可以在 Vertica 中使用的类似于 SQL 服务器的语句的简洁表达式?
您正在使用 SQL 服务器 LIKE
语法。请改用正则表达式:
where not regexp_like(column, '[0-9]')
或者,或者:
where regexp_like(column, '^[^0-9]*$')
HP Vertica 是为处理海量数据而开发的数据库引擎。
如果您的项目使用 Vertica,很可能正在处理或计划处理大量数据。
您采用的不喜欢的方法或使用正则表达式的替代方法会起作用,但不会像本机 Vertica 解决方案那样可扩展。
也许您应该研究一下 projections - 假设它们是物化视图 - 如果该用户的地址有或没有数字,您可以在其中存储一个位。
我需要查询存储地址的 Vertica 数据库并获取 varchar
不包含数字的结果。
对于 SQL 服务器有人建议:
SELECT *
FROM Table
WHERE Column NOT LIKE '%[0-9]%'
但这在 Vertica 中不起作用,这意味着我返回的每个地址在 address1 字段中都有和没有数字。我可以执行以下操作,但它很笨重:
select *
from [TABLE_NAME]
where [FIELD] NOT like '%0%'
and [FIELD] NOT like '%1%'
and [FIELD] NOT like '%2%'
and [FIELD] NOT like '%3%'
and [FIELD] NOT like '%4%'
and [FIELD] NOT like '%5%'
and [FIELD] NOT like '%6%'
and [FIELD] NOT like '%7%'
and [FIELD] NOT like '%8%'
and [FIELD] NOT like '%9%';
是否有可以在 Vertica 中使用的类似于 SQL 服务器的语句的简洁表达式?
您正在使用 SQL 服务器 LIKE
语法。请改用正则表达式:
where not regexp_like(column, '[0-9]')
或者,或者:
where regexp_like(column, '^[^0-9]*$')
HP Vertica 是为处理海量数据而开发的数据库引擎。 如果您的项目使用 Vertica,很可能正在处理或计划处理大量数据。
您采用的不喜欢的方法或使用正则表达式的替代方法会起作用,但不会像本机 Vertica 解决方案那样可扩展。
也许您应该研究一下 projections - 假设它们是物化视图 - 如果该用户的地址有或没有数字,您可以在其中存储一个位。