带一张Orders桌子:
(OrderID, date, customerID, status, etc)
和一张OrderDetails桌子:
(ParentID, itemID, quantity, price, etc)
我想创建一个SQL查询,它将导出CSV平面文件Order和OrderDetail散布的行.例如,输出可能看起来像这样(H并分别D表示"Header"和"Detail").
"H",2345,"6/1/09",856,"Shipped"
"D",2345,52,1,1.50
"D",2345,92,2,3.25
"D",2345,74,1,9.99
"H",2346,"6/1/09",474,"Shipped"
"D",2346,74,1,9.99
"D",2346,52,1,1.50
Run Code Online (Sandbox Code Playgroud)
不知道从哪里开始这个.有任何想法吗?TIA.
您将希望利用在整个结果集上最终union all遵守该order by条款的事实.因此,如果您按第二列(2!)升序排序,并且第一列(1!)降序,您将获得标题行,然后是其下方的详细信息行.
此外,请确保两个查询中的列数相同.它们不必具有相同的数据类型,因为您要导出为CSV,但它们必须是相同的数字.否则,union all将无法将它们堆叠在一起.有时,null如果您需要额外的列,或者''如果您不想null在CSV中使用该单词,则只需填写列.
select
'H',
OrderID,
Date,
CustomerID,
Status
from
Headers
union all
select
'D',
ParentID,
ItemID,
Quantity,
Price
from
Details
order by
2 asc, 1 desc
Run Code Online (Sandbox Code Playgroud)