Usuário com melhor resposta
Exemplo de procedure

Pergunta
-
Olá, eu precisa de um exemplo de uma proc onde o usuário irá entrar com várias informações como o exemplo abaixo.
Idade
Sexo
Estado Civil
Região
IndicaçãoO usuário pode preencher alguns dados, outros não, seria optativo, mas o que ele preencher eu devo buscar.
Muito obrigado
Respostas
Todas as Respostas
-
Create procedure dbo.teste (
@Idade int = Null,
@Sexo Char(1) = Null,
@EstadoCivil Char(1) = Null,
@Regiao varchar(100) = Null,@Indicacao varchar(100) = Null) as
begin
If @Idade is null
begin
-- Procedimento para buscar a idade
end
If @sexos null
begin
-- Procedimento para buscar a idade
end
-- etc
end
Espero ter ajudado
-
Anderson, por favor, mais uma dúvida,
Caso eu tenha um campo com vários itens
Exemplo.
Estado civil - x casado, x solteiro, x Divorciado, x separado
Neste caso eu preciso fazer um select onde o usuário marcou.
Selecione todos que sejam casado, separado e divorciado, como faço a seleção de mais de um parâmetro?
Obrigado. -
-
-
Nao vc pode fazer o seguinte, suponhamos que sua tabela de Estado Civil seja
C=Casado
S=Solteiro
D=Divorciado
você passaria apenas no @EstadoCivil o conteúdo('CSD')
vc pode entao utilizar a função SUBSTRING para chegar os valores passados.Ex:
Declare @TamString int,
@Busca varchar(200),
@Contador int
Set @TamString = Len(@EstadoCivil)
Set @Contador=1
Set @Busca = ''
While @Contador <= TamString
begin
If SubString(@EstadoCivil,@Contador,1) = 'C'
set @Busca = @Busca + 'Casado'+','
If SubString(@EstadoCivil,@Contador,1) = 'D'
set @Busca = @Busca + 'Divorciado' + ','
etc
end
Aí basta vc passar no seu select a variável @Busca.
Espero ter ajudado...
Boa sorte
-
Não estou conseguindo fazer, da o seguinte erro.
Server: Msg 156, Level 15, State 1, Procedure teste, Line 18
Incorrect syntax near the keyword 'where'.
Server: Msg 156, Level 15, State 1, Procedure teste, Line 28
Incorrect syntax near the keyword 'and'.Create procedure teste (
@Idade int = Null,
@Sexo Char(1) = Null,
@EstadoCivil Char(1) = Null,
@Regiao varchar(100) = Null,
@Indicacao varchar(100) = Null)
as
select * from cv_CandidatoDados
begin
If @Idade is null
begin
where idade = @Idade
end
If @sexo is null
begin
and sexo = @sexo
end
end -
Tenta assim:
Create procedure teste (
@Idade int = Null,
@Sexo Char(1) = Null,
@EstadoCivil Char(1) = Null,
@Regiao varchar(100) = Null,
@Indicacao varchar(100) = Null)
as
--select * from cv_CandidatoDados
beginDeclare @ClausulaWhere varchar(1000)
If @Idade is null
beginSet @ClausulaWhere1 = 'idade = ' + (select idade from cv_CandidatoDados)
end
If @sexo is null
begin
Set @ClausulaWhere2 = 'Sexo=' + (Select sexto from cv_CandidatoDados)
end
Select * FROM SUA TABELA WHERE @CLAUSULAWHERE1 + ' AND ' + @CLAUSULAWHERE2
endBasicamente essa é a estrutura, boa sorte
-
Da o seguinte erro.
Server: Msg 137, Level 15, State 1, Procedure teste, Line 22
Must declare the variable '@ClausulaWhere1'.
Server: Msg 137, Level 15, State 1, Procedure teste, Line 31
Must declare the variable '@ClausulaWhere2'.
Server: Msg 137, Level 15, State 1, Procedure teste, Line 34
Must declare the variable '@CLAUSULAWHERE1'. -
Create procedure teste (
@Idade int = Null,
@Sexo Char(1) = Null,
@EstadoCivil Char(1) = Null,
@Regiao varchar(100) = Null,
@Indicacao varchar(100) = Null)
as
--select * from cv_CandidatoDados
beginDeclare @ClausulaWhere1 varchar(1000),
@ClausulaWhere2 varchar(1000)
If @Idade is null
beginSet @ClausulaWhere1 = 'idade = ' + (select idade from cv_CandidatoDados)
end
If @sexo is null
begin
Set @ClausulaWhere2 = 'Sexo=' + (Select sexto from cv_CandidatoDados)
end
Select * FROM SUA TABELA WHERE @CLAUSULAWHERE1 + ' AND ' + @CLAUSULAWHERE2
endBasicamente essa é a estrutura, boa sorte
-
-
Não consegui fazer a questão dos valores informados ou não.
Olá, eu precisa de um exemplo de uma proc onde o usuário irá entrar com várias informações como o exemplo abaixo.
Idade
Sexo
Estado Civil
Região
IndicaçãoO usuário pode preencher alguns dados, outros não, seria optativo, mas o que ele preencher eu devo buscar.
Muito obrigado
-