Temat: Problem z select case
Cześć,
mam następujący problem. Mam dwie tabele 
slownik_slowo ( id, slowo) oraz
slownik_opis (id,opis)
slownik_slowo.id=slownik_opis.id
Działa mi 1 warunek i 3, problem mam z drugim,
select 
case
    when    'z1'='-1' then slowo
    when (SUM(CHAR_LENGTH('z1')))>1  then ( select slowo from f.slownik_opis a join f.slownik_slowo b on a.id=b.id  where b.slowo like '%z1%')
    else null 
    ---(select slowo from f.slownik_opis a join f.slownik_slowo b on a.id=b.id  where b.slowo like '-1')
    end, 
case 
    when    'z1'='-1' then opis
    when  (SUM(CHAR_LENGTH('z1')))>1 then ( select opis from f.slownik_opis a join f.slownik_slowo b on a.id=b.id  where b.slowo like '%z1%')
    else  null
    --( select opis from f.slownik_opis a join f.slownik_slowo b on a.id=b.id  where b.slowo like '-1')
    end, 
case 
    when    'z1'='-1' then dodal
    when (SUM(CHAR_LENGTH('z1')))>1 then ( select dodal from f.slownik_opis a join f.slownik_slowo b on a.id=b.id  where b.slowo like '%z1%')
     else null
     -- (select dodal from f.slownik_opis a join f.slownik_slowo b on a.id=b.id  where b.slowo like '-1')
    end 
from f.slownik_opis a join f.slownik_slowo b on a.id=b.id where slowo like (upper('%-1%'))
group by b.slowo,a.opis, dodal
ERROR: more than one row returned by a subquery used as an expression
Problem jest jak jedno slowo(czyli zmienna z1) ma dwa opisy.
Jak zbudować funkcję żeby dało się wykonać ten warunek ? Niestety odpada CREATE FUNCTION.
Jakieś podpowiedzi ?