我的tsql服务器上有两个表
Table 1: Car {id, name}
Table 1: CarPart {id, name, CarId}
我希望我的选择结果看起来与以下格式类似
id - carname - carpartId - carPartName
-----------------------------------------------
1 car1
101 CarPartA
102 CarPartV
103 CarPartFD
2 car2
101 CarPartAA
102 CarPartDD
103 CarPartD1
3 car3
101 CarPartCA
102 CarPart1D
103 CarPartDB
是否可以在一次选择中使用标识显示?
感谢。
答案 0 :(得分:2)
这几乎不是一个好主意。无论您使用什么来执行SQL,几乎肯定更适合修改数据的呈现方式。
也就是说,有一些有用的情况,表示层是垃圾,对于那些情况,它可能是有道理的。我会怀疑你正在处理其中一个案件。
select id = presentationid, carname, carpartid, carpartname
from (
select carid = id, presentationid = id, carname = name, carpartid = null, carpartname = null
from Car
union all
select carid = Car.id, presentationid = null, carname = null, carpartid = CarPart.id, carpartname = CarPart.Name
from Car
inner join CarPart
on CarPart.CarId = Car.id
) as sub
order by carid, carpartid;
http://www.sqlfiddle.com/#!6/6a57e/2
由于您需要汽车数据和汽车零件数据的单独行,您需要组合两个单独的select
位的结果,并按照汽车零件数据跟随相应的方式对它们进行排序汽车数据。我这样做是通过将carid
添加到列表中,即使是汽车零件数据也会填充。