如何将 table 值的结果粘贴到 SQL 查询中?

How to paste table-valued results together in an SQL query?

假设我有一个名为 TEST 的 table,其中包含名为 ID 和 CONTENT 的两列,table 有两行,ID 值为 1 和 2,CONTENT 值为“ abc,def,ghi" 和 "jkl,mno,pqr",即 table 看起来像这样:

ID | CONTENT
1  | "abc,def,ghi"
2  | "jkl,mno,pqr"

进一步假设我有一个 table 值函数 SPLIT,它将每个字符串拆分成一个 table 的逗号分隔组件,即 SPLIT("abc,def,ghi") 将return 一列三行的 table 包含值“abc”、“def”和“ghi”,例如 SELECT * FROM SPLIT("abc,def, ghi") 会 return table:

COMPONENT
"abc"
"def"
"ghi"

如何编写一个 SQL 查询,其中 return 将 CONTENT 列的拆分字符串与其对应的 ID 值相连?也就是说,我希望结果是:

ID | COMPONENT
1  | "abc"
1  | "def"
1  | "ghi"
2  | "jkl"
2  | "mno"
2  | "pqr"

我试图创建一个 SQL fiddle 作为示例,但我并不是真正的 SQL 专业人士并且无法让它工作,所以我希望以上内容有意义。

如果你有一个 table 值函数 SPLIT() 那么你可以在 MS SQL Server

中编写如下查询
select id,component from test t outer apply SPLIT(t.content)