【问题标题】:Look up values in a string SQL在字符串 SQL 中查找值
【发布时间】:2018-01-02 05:23:53
【问题描述】:

我有一个表格,其中的值用逗号分隔,例如

受影响区域 01,05,06,07

这些值与维度表中的受影响区域相关

查找区域定义的最佳方法是什么

该表有多个这种格式的列需要查找,因此我需要在一个查询中多次重复此操作的最佳方法。

【问题讨论】:

  • “区域定义”和逗号分隔值之间有什么关系?这些值是否代表正方形的角?例如。 Impacted Areas {top-left},{bottom-left},{top-right},{bottom-right}?
  • 请规范化您的架构。越早越好。
  • 到目前为止,处理这个问题的最好方法是遵守 1NF,而不是像这样在单个列中存储多个值。
  • 什么版本的 SQL? 2016+ 有一个可能有用的 string_split() 函数。如果您是
  • 你有 SQL Server 2016+ 吗?如果是,则使用 string_split,否则会有 SQL 循环遍历字符串并获取区域列表,但是如果您需要在循环每个字符串时查看多个字符串,则会出现缩放问题。

标签: sql sql-server tsql dynamic


【解决方案1】:

看一下 SQL like 运算符

https://www.w3schools.com/sql/sql_like.asp

您可能会搜索以下内容:

SELECT * FROM table where Areas like '%,10,%'

将找到包含字符串 ',10,' 的任何区域

【讨论】:

  • 如果 10 是第一个或最后一个值怎么办?这不是一个可行的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 2023-03-19
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 2020-10-09
相关资源
最近更新 更多