maxcarvalho
O post acima é antigo, mas estou enfrentando o mesmo problema.
Estou tentando usar o seguinte :
CASE hd.dia WHEN 2 THEN 'Segunda' WHEN 3 THEN 'Terça' WHEN 4 THEN 'Quarta' WHEN 5 THEN 'Quinta' WHEN 6 THEN 'Sexta' END
Mas quando tento executar a query, ocorre a seguinte mensagem de erro
ERRO: operador não existe: character = integer
HINT: Nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s) informados. Você precisa adicionar conversões de tipo explícitas.
Eu necessito retornar na query, o nome do dia da semana, e não o código.
Alguém poderia me ajudar ?
mauricioadl
maxcarvalho:
O post acima é antigo, mas estou enfrentando o mesmo problema.
Estou tentando usar o seguinte :
CASE hd.dia WHEN 2 THEN 'Segunda' WHEN 3 THEN 'Terça' WHEN 4 THEN 'Quarta' WHEN 5 THEN 'Quinta' WHEN 6 THEN 'Sexta' END
Mas quando tento executar a query, ocorre a seguinte mensagem de erro
ERRO: operador não existe: character = integer
HINT: Nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s) informados. Você precisa adicionar conversões de tipo explícitas.
Eu necessito retornar na query, o nome do dia da semana, e não o código.
Alguém poderia me ajudar ?
se nao me engano, esta faltando o comparador, tipo:
when hd.dia = 3 then ‘terça’ when hd.dia = 4 then ‘quarta’
[]'s
max.carvalho
mauricioadl:
maxcarvalho:
O post acima é antigo, mas estou enfrentando o mesmo problema.
Estou tentando usar o seguinte :
CASE hd.dia WHEN 2 THEN 'Segunda' WHEN 3 THEN 'Terça' WHEN 4 THEN 'Quarta' WHEN 5 THEN 'Quinta' WHEN 6 THEN 'Sexta' END
Mas quando tento executar a query, ocorre a seguinte mensagem de erro
ERRO: operador não existe: character = integer
HINT: Nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s) informados. Você precisa adicionar conversões de tipo explícitas.
Eu necessito retornar na query, o nome do dia da semana, e não o código.
Alguém poderia me ajudar ?
se nao me engano, esta faltando o comparador, tipo:
when hd.dia = 3 then ‘terça’ when hd.dia = 4 then ‘quarta’
[]'s
Consegui resolver assim:
..
CASE hd.dia WHEN '2' THEN 'Segunda' WHEN '3' THEN 'Terça' WHEN '4' THEN 'Quarta' WHEN '5' THEN 'Quinta' WHEN '6' THEN 'Sexta' END as Dia
..
pdpbom
Pessoal
Até onde sei… ( não é muito …).
O Postgresql não possui decode igual Oracle, a resolução é como vocês fizeram com o uso de case.
o erro
ERRO: operador não existe: character = integer
Da-se por que você estava testando
CASE hd.dia WHEN 2 THEN 'Segunda'
WHEN 3 THEN 'Terça'
WHEN 4 THEN 'Quarta'
WHEN 5 THEN 'Quinta'
WHEN 6 THEN 'Sexta'
END
onde hd.dia é possivelmente um varchar(N) … e está sendo comparado com os inteiros 2, 3, 4, 5, 6.
Soluções seria ou colocar como string os números ou converter o campo hd.dia para int.
Foi optado por converter os números para string.
Para converter hd.dia para int tem varias maneiras:
Att