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.
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.
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;
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;