Como usar case para retornar um select

Olá!
Estou pesquisando há um tempo, mas não encontro nada muito prático
Todas as funções que vejo, são pra fazer comparações simples e não é o que quero.

O que ocorre é o seguinte, no SQL Server eu crio uma Stored Procedure(Function no PostgreSQL, creio eu) e passo os parâmetros. Digamos que quero retornar na minha SP, os dados da tabela funcionário, fazendo uma pesquisa usando o nome do funcionário.

IF (nome IS NOT NULL) THEN
  BEGIN
     SELECT Funcionario.*
     FROM   Funcionario
     WHERE  Funcionario.nome LIKE '%' + nome + '%'
  END
...

Bem simples MESMO.
Porém, não tenho a mesma facilidade com o PostgreSQL.

Como posso criar minha Function para que ele retorne os dados da tabela?
Como posso fazer essa verificação se o parâmetro está nulo ou não?

Alguém…?

Como retornar tabela:

Usando If:

1 curtida

O IF eu não sabia que existia no PostgreSQL e não encontrei um exemplo com VARCHAR, Para isto, estou usando CASE mesmo

Sobre o retorno de funções, pelo que vi, o que falta era eu usar SELECT * FROM funcao
Estive usando apenas SELECT funcao, o que me deu problemas

O primeiro link foi perfeito, deu para esclarecer bastante. Meu problema agora é apenas retornar o exception, por exemplo, se o parâmetro for NULL, não vai trazer nada. Mas isso vou pesquisando por aqui, os links já ajudaram bastante

MUITO OBRIGADO, você salvou meu couro

1 curtida

Pra facilitar suas pesquisas, coloque o nome da linguagem: pgSql.

1 curtida