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 ?