【发布时间】:2019-12-19 18:03:30
【问题描述】:
我在 Microsoft SQL 数据库中有两个表,其中一个包含 3 列带有分隔值的列(使用逗号和/或斜杠,但两者都应视为分隔符)。 然后我有另一个表,其中包含一个 ID,该 ID 与来自 TABLE1 的拆分字符串中的每个项目相同。 我想解析表 1 中的项目,以便显示表 2 中匹配行的文本。 有没有办法做到这一点?
表 1
Text1 Text2 Text3
TA12,TA250 T1
TA12,TA250 T1
TA12,TA250 TA250,TA12 T310/T52
TA12,TA250 TA250 T310/T52
表2
TA12 Hello
TA250 World
T1 This is a Test
T310 You are
T52 a Hero
想要的结果
Text1 Text2 Text3
Hello World This is a Test NULL
Hello World This is a Test NULL
Hello World World Hello You are a Hero
Hello World World You are a Hero
我可以使用 C# 来实现这一点,但我更希望这发生在 SQL 端。
【问题讨论】:
-
永远不要将数据存储为逗号分隔的项目。只会给你带来很多麻烦。
-
此外,字符串操作是高度特定于供应商的。我们需要知道您正在使用的 rdbms 和版本,才有机会回答这个问题。
-
@jarlh 我当然永远不会这样做,但这是一个现有的数据库;)相信我,我可以对制作这个的人大喊大叫.. :(
-
@a_horse_with_no_name 这是 Microsoft SQL,抱歉...
-
哪个版本?较新的版本有一个
split()功能会很有帮助
标签: sql sql-server tsql split