unitName(单位) carinfo(车辆信息) ....(字段列) ....(字段列)
大河车辆有限公司 装载车
大河车辆有限公司 危险车
大河车辆有限公司 罐装车
小庄家有限公司 瓶颈车现在要得到的结果是根据单位查询单位下面的车辆信息 ,剔除重复的单位哦,得到的结果应该是这样
unitName carinfo .......(字段列) .......(字段列)
大河车辆有限公司 装载车
危险车
罐装车
这样的sql语句怎么写呢?麻烦给条详细的语句
大河车辆有限公司 装载车
大河车辆有限公司 危险车
大河车辆有限公司 罐装车
小庄家有限公司 瓶颈车现在要得到的结果是根据单位查询单位下面的车辆信息 ,剔除重复的单位哦,得到的结果应该是这样
unitName carinfo .......(字段列) .......(字段列)
大河车辆有限公司 装载车
危险车
罐装车
这样的sql语句怎么写呢?麻烦给条详细的语句
大河车辆有限公司 装载车
危险车
罐装车修改了一个格式
--> 测试数据:@T
declare @T table([unitName] varchar(16),[carinfo] varchar(6),[c1] int,[c2] int,[c3] int)
insert @T
select '大河车辆有限公司','装载车',1,1,1 union all
select '大河车辆有限公司','危险车',2,2,2 union all
select '大河车辆有限公司','罐装车',3,3,3 union all
select '小庄家有限公司','瓶颈车',4,4,4DECLARE @unitName VARCHAR(20)
SET @unitName='大河车辆有限公司';WITH maco AS
(
SELECT ROW_NUMBER() OVER (PARTITION BY unitName ORDER BY (SELECT 1)) AS rid, * from @T
)
SELECT
CASE WHEN rid=1 THEN unitname ELSE '' END AS unitname ,
[carinfo],c1,c2,c3
FROM maco WHERE unitName=@unitName
/*
unitname carinfo c1 c2 c3
---------------- ------- ----------- ----------- -----------
大河车辆有限公司 装载车 1 1 1
危险车 2 2 2
罐装车 3 3 3(3 row(s) affected)
*/
go
create table [TB] (unitName nvarchar(16),carinfo nvarchar(6))
insert into [TB]
select '大河车辆有限公司','装载车' union all
select '大河车辆有限公司','危险车' union all
select '大河车辆有限公司','罐装车' union all
select '小庄家有限公司','瓶颈车'select * from [TB];WITH TT
AS(
SELECT ROW_NUMBER() OVER(PARTITION BY unitname ORDER BY carinfo) AS NO ,unitname,carinfo
FROM dbo.TB)SELECT CASE WHEN no =1 THEN unitname ELSE '' END AS unitname,carinfo
FROM TT/*
unitname carinfo
大河车辆有限公司 罐装车
危险车
装载车
小庄家有限公司 瓶颈车*/
WHEN ROWNO = 1 THEN
unitname
ELSE
''
END AS unitname,
carinfo
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY unitname ORDER BY carinfo) AS ROWNO,
unitName,
carinfo
FROM CAR_MST)