【发布时间】:2018-03-13 14:33:19
【问题描述】:
我的第一篇文章!我希望你能帮助我:)
我正在使用 SQL 2017,我有一个这样的表:
+----+------------------+------------------+
| ID | Col1 | Col2 |
+-----+------------------+------------------+
| 110 | 450,2,50,110,600 | 3,45,30,901,1001 |
| 250 | 2,250,300,1 | 1,33,540,900 |
| 45 | 1,45,320 | 200,444,600 |
+-----+------------------+------------------+
逻辑是在 Col1 中找到 ID 位置,并根据该位置返回 Col2 中的子字符串。
例子:
ID 110 匹配 Col1 中的第 4 个位置,因此应该在 Col2 中返回 901 值。
ID 250 匹配 Col1 中的第二个位置,因此应该在 Col2 中返回 33 值。
ID 45 匹配 Col1 中的第二个位置,因此应该在 Col2 中返回 400 值。
我做了不同的尝试都没有成功,可能我的方向错了。
你能帮忙吗?
我想要的输出是 Col2 的特定值。
谢谢!
【问题讨论】:
-
您能否在问题中包含您希望最终输出的样子?
-
不要像这样在 SQL 表中存储 CSV。即使你得到了答案,它也会有问题并且难以使用/维护。
-
什么版本的 SQL Server?
-
我同意@TimBiegeleisen。这里唯一有意义的答案是修复您的数据模型。你所拥有的东西违反了 1NF 并且使用起来很糟糕。
-
请记住,很多人不拥有数据库,他们不设计数据库,但仍然必须在交给他们的某些条件下工作。所以 cmets 说这是糟糕的设计是正确的,但在这里根本没有帮助......
标签: sql sql-server indexing substring charindex