You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Netezza数据库如何查询列中含SN及两侧各1字符的去重子串

Netezza 数据库下的实现方案

你可以直接用 Netezza 内置的正则提取函数实现需求,核心是用 .?SN.? 正则模式匹配「SN本身/左边1个字符+SN/SN+右边1个字符/左边1个字符+SN+右边1个字符」的所有情况,刚好符合你要提取SN及左右各1个字符的要求。

单字段仅第一个SN匹配场景

如果每个SYMBOL字段中仅存在一个SN子串,用以下语句即可:

SELECT DISTINCT REGEXP_EXTRACT(SYMBOL, '.?SN.?') AS target_sub
FROM your_table
WHERE SYMBOL LIKE '%SN%'

单字段存在多个SN匹配场景

如果需要提取单个SYMBOL字段中所有出现的SN对应子串,可配合REGEXP_EXTRACT_ALL拆分后去重:

SELECT DISTINCT t.sn_sub
FROM your_table,
     TABLE(REGEXP_EXTRACT_ALL(your_table.SYMBOL, '.?SN.?') OVER (PARTITION BY your_table.Field1)) AS t(sn_sub)
WHERE your_table.SYMBOL LIKE '%SN%'

逻辑说明

  • 正则模式.?表示匹配0个或1个任意字符,.?SN.?刚好覆盖SN在字符串开头(左边无字符)、结尾(右边无字符)、中间的所有边界情况
  • 输出的子串会严格保留匹配到的空格、下划线等特殊字符,完全匹配你给出的示例输出要求

内容的提问来源于stack exchange,提问作者Amy Rose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:06:03