select global_user_id,
case
when A.global_user_pri='' or not A.global_user_pri in (select PositionName from global_Position) then (select max(OrderId) from global_Position)
when A.global_user_pri in (select PositionName from global_Position) then (select OrderId from global_Position
where PositionName=A.global_user_pri)
end as OrderId
from global_user A
create procedure [dbo].[sp_CategoryDocStatic]
@flag nvarchar(50) ='pub'
As
if(@flag='pub')
begin
select global_doc_dir_name,SUM(CASE global_doc_private WHEN 'F' THEN 1 ELSE 0 END) as 'pubNum',SUM(CASE global_doc_private WHEN 'T' THEN 1 ELSE 0 END) as 'priNum',count(*) as TotalNum from dbo.view_doc group by global_doc_dir_name order by pubNum desc
end
else if(@flag='pri')
begin
select global_doc_dir_name,SUM(CASE global_doc_private WHEN 'F' THEN 1 ELSE 0 END) as 'pubNum',SUM(CASE global_doc_private WHEN 'T' THEN 1 ELSE 0 END) as 'priNum',count(*) as TotalNum from dbo.view_doc group by global_doc_dir_name order by priNum desc
end
else if(@flag='total')
begin
select global_doc_dir_name,SUM(CASE global_doc_private WHEN 'F' THEN 1 ELSE 0 END) as 'pubNum',SUM(CASE global_doc_private WHEN 'T' THEN 1 ELSE 0 END) as 'priNum',count(*) as TotalNum from dbo.view_doc group by global_doc_dir_name order by TotalNum desc
end