AJUDA Mysql CASE

Pessoal preciso de ajuda nessa query não consigo executa-la

SELECT NOME, CASE clientes.CPF_CNPJ
WHEN clientes.CPF_CNPJ = ‘’ THEN (UPDATE clientes SET NOME = ‘CARLOS JR’, ENDERECO = ‘RUA AGUA SUJA’ WHERE clientes.CPF_CNPJ = '000.000.000-00’
WHEN clientes.CPF_CNPJ != ‘’ THEN INSERT INTO clientes (NOME,ENDERECO)VALUES (‘FELIPE’,‘TRAVESSA CARLOS’)
END as CPF
FROM clientes

Olá, acredito que talvez conseguirias mais auxílio na tag Banco de Dados ao invés de Java, mas…
Obviamente a sql tem problemas e por isso não consegue executá-la, mas explique melhor oque vc quer fazer, pois acho que ESTA sql não tem “conserto”.

UPDATE ou INSERT dentro de um SELECT até onde sei não rola. Caso deseja fazer UPDATE ou INSERT baseado em valores da consulta, recomendo fazer duas SQLs: Uma de INSERT e outra de UPDATE e coloca no where a sua condição.

Olá rodrigo eu quero fazer o seguinte vou pesquisar um cliente pelo CPF se me retornar vazio eu vou executar um insert para inserir os dados dele se caso não for vazio e ele já existir irei executar um UPDATE apenas para altera-lo

Entendo so q para oque eu preciso fazer aqui não da estou fazendo um boot para ficar inserindo dados no banco pego txt de uma aplicação em clipper e mando para outro BD

certo, mas vc n pode por um update ou insert dentro de um select, o contrário sim. É meio estranho inserir ou alterar dados em uma consulta…

Neste caso amigo, recomendo você montar 3 SQL’s, um para INSERT, um para UPDATE e um SELECT, basicamente cada um seria um método dentro da sua classe DAO!

Monte um sql de consulta para realizar a pesquisa do cliente pelo CPF dele, isso pode ser feito com um método de retorno booleano, se ele retornar true quer dizer que ele encontrou um cliente, aí nesse caso você chama seu método de atualização, caso contrário ele retornará false, ou seja nenhum cliente foi encontrado, aí nesse caso chame seu método de inserção!

Uma dica de boa prática, monte tudo separadamente, cada método deve tratar de um único processo.

Sim obrigado Jonathan compreendo como seria ate a melhor forma mas na situação que estou na da pra fazer precisava que fosse tudo em uma Query tem aguma solução faze isso usando CASE ?

Acredito que não, mas e separando por ; ?
Poderia ter várias operações em um mesmo “texto”. Seria uma opção?

Queria que se a consulta retornasse vazio ele inseria e se retornasse diferente de vazio atualizava

Cara, da forma que vc expôs com select não vai rolar, comece a procurar alternativas, não adianta ficar insistindo em um beco sem saída. Não tenho mais muitas ideias pq tá meio obscuro seu contexto, ou faz um serviço(aplicação) que faça isso pra vc ai vc faz com IF…

Cara, sinceramente, desconheço esse tipo de prática, acredito que isso não exista!

Vale a pena você repensar e montar isso de forma diferente, você perderá um pouco mais de tempo agora para poder montar tudo separadamente, porém terá um ganho de esforço e tempo gigantesco no futuro em relação a manutenções no seu código.

Blza valeu se não der certo assim vou fazer do Jeito que ja estou acostumado mesmo retorno o resultado do select e executo uma query ou outra, aproveitando sabe me dizer como faço para minimizar o JFrame e ele ir para o system Tray achei varios tutoriais mais sem sucesso ate agora

Eu sei que quando você minimiza um JInternalFrame dentro de um JDesktopPane ele tem um comportamento semelhante ao de minimizar aplicações na barra de tarefas do Windows, não sei se é isso que você quer.

Porém nunca utilizei, então não conheço nada a respeito, mas você pode criar um novo tópico, alguém do fórum já deve ter feito algo parecido e vai poder te ajudar com mais facilidade.