如何在 sql 的内部连接语句中使用 COALESCE
how to use COALESCE in an inner join statement in sql
我打算在我的问题中使用 COALESCE。我想要的只是在单个列中用逗号分隔值。
这是我的声明:
select p.[name], cd.CustomerName, cd.CustomerEmailID
,cd.CustomerPhoneNo,cd.CustomerAddress
,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod
FROM CustomerDetails cd
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id
Inner Join Products p ON cp.ProductID = p.ProductID
它会给我这个
现在我希望产品列的结果为
carbon dioxied,industrial oxygen
因为他们是同一个ID。
请帮帮我。非常感谢
更新:fiddle
更新:当前语句但仍然给我相同的结果。
use ShoppingCartDB
select
STUFF((SELECT ',' + p.[name]
FROM Products p
WHERE cp.ProductID = p.ProductID
FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'') AS Name
, cd.CustomerName, cd.CustomerEmailID
,cd.CustomerPhoneNo,cd.CustomerAddress
,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod
FROM CustomerDetails cd
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id
SELECT DISTINCT
STUFF((SELECT ',' + p.[name]
FROM Products p
WHERE cp.ProductID = p.ProductID
FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'') AS Name
, cd.CustomerName, cd.CustomerEmailID
,cd.CustomerPhoneNo,cd.CustomerAddress
,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod
FROM CustomerDetails cd
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id
我打算在我的问题中使用 COALESCE。我想要的只是在单个列中用逗号分隔值。 这是我的声明:
select p.[name], cd.CustomerName, cd.CustomerEmailID
,cd.CustomerPhoneNo,cd.CustomerAddress
,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod
FROM CustomerDetails cd
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id
Inner Join Products p ON cp.ProductID = p.ProductID
它会给我这个
现在我希望产品列的结果为
carbon dioxied,industrial oxygen
因为他们是同一个ID。
请帮帮我。非常感谢
更新:fiddle
更新:当前语句但仍然给我相同的结果。
use ShoppingCartDB
select
STUFF((SELECT ',' + p.[name]
FROM Products p
WHERE cp.ProductID = p.ProductID
FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'') AS Name
, cd.CustomerName, cd.CustomerEmailID
,cd.CustomerPhoneNo,cd.CustomerAddress
,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod
FROM CustomerDetails cd
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id
SELECT DISTINCT
STUFF((SELECT ',' + p.[name]
FROM Products p
WHERE cp.ProductID = p.ProductID
FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'') AS Name
, cd.CustomerName, cd.CustomerEmailID
,cd.CustomerPhoneNo,cd.CustomerAddress
,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod
FROM CustomerDetails cd
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id