首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择对字符串字段的查询,该字段将破折号"-“作为空格

选择对字符串字段的查询,该字段将破折号"-“作为空格
EN

Stack Overflow用户
提问于 2021-04-26 18:14:39
回答 1查看 36关注 0票数 0

我有一个表,其中VARCHAR(255)字段可能有"-“dahs char用作空白,因为它报告从外部DBs检索到的化合物。同样的化合物可以在没有破折号和空白的情况下写成,而不是它们或其中的一个子集。例如,化合物“2-羟基-丙酸”可以写成。

  1. 2-羟基丙酸
  2. 2羟基丙酸
  3. 2-羟基丙酸

所有这些都是正确的文字,它们指的是同一种化合物。如果搜索字符串是其他3之一,那么是否有一种选择存储字段“2-羟基-丙酸”的优雅方法?这只是一个例子,破折号可能只是一个甚至更多的2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-26 18:18:19

您可以使用REPLACE来替换WHERE子句中的任何连字符:

代码语言:javascript
复制
SELECT  *
  FROM  MyTable
  WHERE (REPLACE(myField, '-', ' ') = REPLACE('2-hydroxy-propionic acid', '-', ' '));

这是因为源字段中的所有连字符都被空格替换,标准中的连字符也被空格替换。

这样,所有结果都将被返回,而不管连字符在哪里(或不在)。

基于示例行的输出:

代码语言:javascript
复制
2-hydroxy-propionic acid
2-hydroxy propionic acid
2 hydroxy propionic acid

下面是一个工作小提琴,显示了这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67271789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档