Select Mysql com if

3 respostas
mysql
N

Boa tarde a todos.

Sei somente o básico em SQL, mas preciso fazer um SELECT no MySQL com as seguintes informações:

SELECT Campo_Data_TABELA_HISTORICO , Campo_Matricula_TABELA_HISTORICO, IF (character_length( Campo_Matricula_TABELA_HISTORICO ) > 6, SELECT Nome_Funcionario_TABELA_FUNCIONARIO where …, SELECT Nome_Visitante_TABELA_VISITANTE where … ) …

O meu problemas esta sendo no IF, pois o comando sem o IF funciona perfeitamente.

Não encontrei exemplos parecidos até o momento.

Agradeço desde já a ajuda.

3 Respostas

N

Tentando melhorar a explicação: Quero fazer o teste com IF, para fazer um segundo SELECT.
Se TRUE: SELECT o nome do visitante na tabela Visitante.
Se FALSE: SELECT o nome do funcionário na tabela Funcionário.

Não sei se isso é possível, mas se alguém sobre de algo sobre já agradeço.

J

Um case não atende o que você precisa ?

Exemplo:

SELECT
	CASE CHARACTER_LENGTH(Campo_Matricula_TABELA_HISTORICO) WHEN 6 THEN
		//Busca na tabela de visitante
	ELSE
		//Busca na tabela de funcionário
	END 
FROM 
	SUA_TABELA;
J

Ou caso queira permanecer com o uso do IF mesmo, isola as consultas!

SELECT IF(CHARACTER_LENGTH(Campo_Matricula_TABELA_HISTORICO) > 6, 
         (SELECT NOME_FUNCIONARIO FROM TABELA_FUNCIONARIO), 
         (SELECT NOME_VISITANTE FROM TABELA_VISITANTE)) AS NOME 
FROM SUA_TABELA;
Criado 21 de dezembro de 2018
Ultima resposta 21 de dez. de 2018
Respostas 3
Participantes 2