select * from A
order by 工事CD
,case when exists(select 1 from B where 参加公司1=A.公司CD) then 1
when exists(select 1 from B where 参加公司2=A.公司CD) then 2
when exists(select 1 from B where 参加公司3=A.公司CD) then 3
when exists(select 1 from B where 参加公司4=A.公司CD) then 4
else 5
end
order by 工事CD
,case when exists(select 1 from B where 参加公司1=A.公司CD) then 1
when exists(select 1 from B where 参加公司2=A.公司CD) then 2
when exists(select 1 from B where 参加公司3=A.公司CD) then 3
when exists(select 1 from B where 参加公司4=A.公司CD) then 4
else 5
end
通常的sql语句都能执行,还有没有办法?
order by 工事CD
,charindex(','+A.公司CD+',' , (select ','+参加公司1+','+参加公司2+','+参加公司3+','+参加公司4+','+参加公司5+',' from B where 工事CD=A.工事CD))
a.工事CD,Charindex(a.公司CD,b.参加公司1+b.参加公司2+b.参加公司3+b.参加公司4+b.参加公司5)
a.工事CD,Charindex(','+a.公司CD+',',','+b.参加公司1+','+b.参加公司2+','+b.参加公司3+','+b.参加公司4+','+b.参加公司5+',')
select A.工事CD, A.公司CD,
DECODE(A.公司CD, b.参加公司1, 1, b.参加公司2, 2,
b.参加公司3, 3, b.参加公司4, 4,
b.参加公司5, 5, 6 ) num
from A
left join
B
on a.工事CD=b.工事CD) C order by num
Select a.* from A表 a left join B表 b on a.工事CD=b.工事CD Order by
a.工事CD,Charindex(','+a.公司CD+',',','+b.参加公司1+','+b.参加公司2+','+b.参加公司3+','+b.参加公司4+','+b.参加公司5+',')
a.工事CD,Charindex(','+a.公司CD+',',','+b.参加公司1+','+b.参加公司2+','+b.参加公司3+','+b.参加公司4+','+b.参加公司5+',')