select distinct doc_id,xm,bd
from qd
效果是:
104-1-a M7.5浆砌片石急流槽 D9
104-1-a 利用土方 D9
104-1-a 清理现场 D9
104-1-a 挖土方 D9
104-1-b 单向土工格栅 D9
104-1-b 砍树挖根 D9
104-1-b 利用石方 D9
104-1-b 挖石方 D9
104-1-c 借土填方 D9
104-1-c 借土填筑 D9
104-1-c 挖除非适用材料(包括淤泥) D9
104-1-c 锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
104-1-c-1 砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
207-5-a 厚150mm D9
207-5-b C20预制块骨架护坡 D9
207-5-b C25混凝土 D9
我想要的效果是:
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
就是说,doc_id相同的情况下,只显示一次,显示在第一条数据那里。
请高手指点!
7 个解决方案
#1
我想要的效果是:
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
就是说,doc_id相同的情况下,只显示一次,显示在第一条数据那里。
请高手指点!
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
就是说,doc_id相同的情况下,只显示一次,显示在第一条数据那里。
请高手指点!
#2
lz应该从应用程序端考虑这个问题
#3
create table qd (doc_id varchar(20),xm varchar(50),bd varchar(10))
insert into qd
select '104-1-a','M7.5浆砌片石急流槽','D9'
union all select '104-1-a','利用土方','D9'
union all select '104-1-a','清理现场','D9'
union all select '104-1-a','挖土方','D9'
union all select '104-1-b','单向土工格栅','D9'
union all select '104-1-b','砍树挖根','D9'
union all select '104-1-b','利用石方','D9'
union all select '104-1-b','挖石方','D9'
union all select '104-1-c','借土填方','D9'
union all select '104-1-c','借土填筑','D9'
union all select '104-1-c','挖除非适用材料(包括淤泥)','D9'
union all select '104-1-c','锥坡填筑','D9'
union all select '104-1-c-1','Φ40cm复合桩','D9'
union all select '104-1-c-1','砂砾','D9'
union all select '207-5-a','C15混凝土基底砖砌平台沟(0.4m×0.4m)','D9'
union all select '207-5-a','厚150mm','D9'
union all select '207-5-b','C20预制块骨架护坡','D9'
union all select '207-5-b','C25混凝土','D9'
select doc_id=case when (select count(1) from qd where doc_id=a.doc_id and xm<=a.xm)>1 then '' else doc_id end,xm,bd from qd a
/*
doc_id xm db
-----------------------------------------------------
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
*/
drop table qd
#4
学习...
#5
Select A.doc_id,B.xm,C.bd
(
select distinct doc_id from qd
) A
left join
qd B on A.doc_id = B.doc_id
#6
帮顶一下,我的感觉也是在应用程序端考虑这个问题,更灵活一些,
#7
应用程序端更灵活。
#1
我想要的效果是:
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
就是说,doc_id相同的情况下,只显示一次,显示在第一条数据那里。
请高手指点!
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
就是说,doc_id相同的情况下,只显示一次,显示在第一条数据那里。
请高手指点!
#2
lz应该从应用程序端考虑这个问题
#3
create table qd (doc_id varchar(20),xm varchar(50),bd varchar(10))
insert into qd
select '104-1-a','M7.5浆砌片石急流槽','D9'
union all select '104-1-a','利用土方','D9'
union all select '104-1-a','清理现场','D9'
union all select '104-1-a','挖土方','D9'
union all select '104-1-b','单向土工格栅','D9'
union all select '104-1-b','砍树挖根','D9'
union all select '104-1-b','利用石方','D9'
union all select '104-1-b','挖石方','D9'
union all select '104-1-c','借土填方','D9'
union all select '104-1-c','借土填筑','D9'
union all select '104-1-c','挖除非适用材料(包括淤泥)','D9'
union all select '104-1-c','锥坡填筑','D9'
union all select '104-1-c-1','Φ40cm复合桩','D9'
union all select '104-1-c-1','砂砾','D9'
union all select '207-5-a','C15混凝土基底砖砌平台沟(0.4m×0.4m)','D9'
union all select '207-5-a','厚150mm','D9'
union all select '207-5-b','C20预制块骨架护坡','D9'
union all select '207-5-b','C25混凝土','D9'
select doc_id=case when (select count(1) from qd where doc_id=a.doc_id and xm<=a.xm)>1 then '' else doc_id end,xm,bd from qd a
/*
doc_id xm db
-----------------------------------------------------
104-1-a M7.5浆砌片石急流槽 D9
利用土方 D9
清理现场 D9
挖土方 D9
104-1-b 单向土工格栅 D9
砍树挖根 D9
利用石方 D9
挖石方 D9
104-1-c 借土填方 D9
借土填筑 D9
挖除非适用材料(包括淤泥) D9
锥坡填筑 D9
104-1-c-1 Φ40cm复合桩 D9
砂砾 D9
207-5-a C15混凝土基底砖砌平台沟(0.4m×0.4m) D9
厚150mm D9
207-5-b C20预制块骨架护坡 D9
C25混凝土 D9
*/
drop table qd
#4
学习...
#5
Select A.doc_id,B.xm,C.bd
(
select distinct doc_id from qd
) A
left join
qd B on A.doc_id = B.doc_id
#6
帮顶一下,我的感觉也是在应用程序端考虑这个问题,更灵活一些,
#7
应用程序端更灵活。