【问题标题】:Select distinct instances substring from a column从列中选择不同的实例子字符串
【发布时间】:2021-12-10 22:33:10
【问题描述】:

我有一列包含“SN”的子字符串变体。我只想在任一侧看到这个加 1 个字符的不同变体,而不是整个字段。

Field1 SYMBOL
1 safsdafsadfs aSN fsadfsadf
2 sadfsdafb_SN0 sdfsadfsadf
3 adsfsjSN
4 23 SN dfe

所以我想看看; aSN,_SN0,jSN,SN。 下面返回每个字段。

SELECT DISTINCT SYMBOL
FROM table
WHERE SYMBOL LIKE '%SN%'

我检查了SQL: selecting distinct substring from a field 和其他一些,但没有运气。任何帮助表示赞赏。这是使用 Netezza DB。

【问题讨论】:

  • DISTINCT 不是一个函数,它是一个设置量词,适用于整个选定的行。跳过多余的括号,直接写SELECT DISTINCT SYMBOL FROM table WHERE SYMBOL LIKE '%SN%',让代码更清晰。
  • 你能粘贴你尝试过的代码吗?
  • 我有,我不知道从这里去哪里。 substring_index 似乎没有用,甚至 substring 也没有用。

标签: sql substring distinct sql-like


【解决方案1】:

已更新(我没有读到您正在使用 Netezza):

也许您正在寻找的查询是(未经测试):

SELECT DISTINCT substr(symbol, strpos(symbol, 'SN')-1 , 3)

但是...如果符号字段之前有另一个“SN”,您将遇到问题。例如“snafsdafsadfs aSN fsadfsadf”。你会遇到问题,因为你不知道哪个是正确的 SN。

【讨论】:

  • 嗨 Carlos,感谢您的帮助,但这似乎在 Netezza 中不起作用。我想我需要使用 substr('SN',-1,4) 代替。然后选择不同的。
  • @AmyRose 我没有建议您使用 Netezza,抱歉。我已经更新了。
猜你喜欢
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2020-07-25
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多