如何将 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)
假设我有一个名为 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)