select子句中的SQL逗号分隔列表

select子句中的SQL逗号分隔列表,sql,sql-server-2008,subquery,Sql,Sql Server 2008,Subquery,我有下列表格 表A -------------------------- part no description ----------------------- 001 Brake 002 Clutch 003 Alternator 表B -------------------------- Vehicle_id brand Part_No ----------------------- 42 Honda 001 34

我有下列表格

表A

--------------------------
part no  description
-----------------------
001      Brake
002      Clutch
003      Alternator
表B

--------------------------
Vehicle_id  brand  Part_No
-----------------------
42          Honda        001
34          Toyota       002
42          Honda        003
34          Toyota       001
我想写一个将返回以下内容的查询

Vehicle_id   brand    parts
42           Honda    Brake,Alternator
有什么想法吗?试试这个

SELECT B.VID,
  B.BRND,
  WMSYS.WM_CONCAT(A.DESCP) PARTS
FROM
  (SELECT 001 prtno,'Brake' Descp FROM dual
  UNION ALL
  SELECT 002 prtno,'Clutch' Descp FROM dual
  UNION ALL
  SELECT 003 prtno,'Alternator' Descp FROM dual
  )a,
  (SELECT 42 VID,'Honda' Brnd,001 prt_no FROM dual
  UNION ALL
  SELECT 34 VID,'Toyota' Brnd,002 prt_no FROM dual
  UNION ALL
  SELECT 42 VID,'Honda' Brnd,003 prt_no FROM dual
  UNION ALL
  SELECT 34 VID,'Toyota' Brnd,001 prt_no FROM dual
  )b
WHERE A.PRTNO = B.PRT_NO GROUP BY B.VID,
  B.BRND; 

这不是真的会在一行中创建更多吗?我需要一行中的所有零件名。更像是pivoted。这是为oracle RDBMSThanks提供的答案。你很棒,没问题,伙计。如果有帮助,你可以接受答案吗?你是如何得出结果的?你使用什么数据库来运行此查询的。另外,请详细说明你想要实现的目标。在您的结果中,您显示的车辆识别号34和品牌为本田,而在表b中,有两条车辆识别号34的记录,这两条记录对应的品牌为丰田。对不起。修正输出。我想使用MSSQL Server 2008在一个不同的字段中显示右表中的一对多记录