Sql Oracle:变量名的多个逗号分隔变量ID
这些表包含以下列: 表1:Sql Oracle:变量名的多个逗号分隔变量ID,sql,oracle,Sql,Oracle,这些表包含以下列: 表1: Client_Name | VAR_ID Row 1: SchwabM5-Prodtest-Strategy | 3025,2937 Row 2: SchwabM5-Prodtest-Strategy | 5,7 表2: Client_Name | VAR_ID Row 1: A | 3025 Ro
Client_Name | VAR_ID
Row 1: SchwabM5-Prodtest-Strategy | 3025,2937
Row 2: SchwabM5-Prodtest-Strategy | 5,7
表2:
Client_Name | VAR_ID
Row 1: A | 3025
Row 2: B | 5
Row 1: C | 2937
Row 2: D | 7
问题:我想在一个查询中从上面的表中得到如下输出
Client_Name | VAR_ID
Row 1: SchwabM5-Prodtest-Strategy | A,C
Row 2: SchwabM5-Prodtest-Strategy | B,D
你能帮我得到查询,从中我可以得到上面的输出吗
CREATE TABLE [dbo].[Table1](
[name] [nvarchar](50) NULL,
[var_id] [nvarchar](50) NULL
)
表1中的数据
SchwabM5-Prodtest-Strategy | 3025,2937
SchwabM5-Prodtest-Strategy | 5,7
表2
CREATE TABLE [dbo].[Table2](
[name] [nvarchar](50) NULL,
[var_id] [int] NULL
)
表2中的数据
A | 3025
B | 5
C | 2937
D | 7
运行以下查询
WITH [RESULTS]
AS
(
SELECT
[NAME]
,CAST ('<Nodes><Node>' + replace([var_id],',','</Node><Node>') + '</Node></Nodes>' AS XML) NODEXML
FROM [dbo].Table1
)
SELECT [NAME] ,
STUFF((SELECT ',' + [name] FROM [dbo].Table2 WHERE var_id IN
(
SELECT tab.col.value('.','int') FROM NODEXML.nodes('//Node') AS tab(col)
) FOR XML PATH('')),1,1,'') CONTENT
FROM RESULTS
不要在列中存储逗号分隔的值。在数据处理过程中,它会带来痛苦您使用的是哪种DBMS?它是一个oracle表您如何知道Abhirup Dhar正在使用SQL Server?它是一个oracle表