首页 > 解决方案 > SQL SELECT WHERE 字段拆分包含一个数字

问题描述

我有一个表格,其中包含以“,”或“-”分隔的儿童年龄的字符串,就像这样

在此处输入图像描述

我想查找包含“4”的项目,例如 4-9-14 , . 我想用“,”或“-”分隔项目,然后找到“4”

标签: sqlsql-server

解决方案


你真的应该修复数据模型。如果没有,like可能是您的最佳选择。我在想:

where ' ' + replace(replace(ageOfChildren, ',', ' '), '-', ' ') + ' ' like '% 4 %'

' '这将通过替换所有逗号和连字符来更改分隔符。' 4 '然后它在替换后寻找。

请注意以下事项:

  • 在一个字符串中存储多个值是一个坏主意。
  • 将数字存储在字符串中是一个坏主意。
  • 存储年龄是个坏主意,因为它们每天都在变化。

您应该有一个单独的表格,其中每个孩子一行和一个存储出生日期的日期。


推荐阅读