Hola.
Creo que tienes que finalizar el CASE con un END.
O sea :
Código:
with QueryAsu do
begin
SQL.Clear;
SQL.Add('select SESASU_CODIGO,SESASU_GRUPO,SESASU_ORDEN,');
SQL.Add('SESGRU_CODIGO,SESGRU_DESCRIP,SESGRU_MOSTRAR,');
SQL.Add('(CASE WHEN SESGRU_MOSTRAR = 1 THEN SEASU_ASUNTO ELSE SESGRU_DESCRIP END) as ASUNTO ');
SQL.Add('from SES'+Part+'ASU A inner join SES'+Part+'GRU on SESGRU_CODIGO=A.SESASU_GRUPO ');
SQL.Add('where SESASU_SESION='+#39+inttostr(SesCodigo)+#39);
SQL.Add(' order by SESASU_GRUPO,SESASU_ORDEN');
Open;
end;