Usuário com melhor resposta
Procedure - variável com like

Pergunta
-
Olá a todos.
Estou com uma dúvida com relação a like com variáveis numa procedure. Vou explicar melhor com exemplo usando o northwind:
Só para ilustração...
criando uma procedure:
CREATE PROCEDURE sp_teste (
@nome varchar(60) = N'%'
)
as
begin
SELECT CódigoDoProduto, NomeDoProduto
FROM Produtos
where NomeDoProduto like @nome
endquando executo colocando o nome do produto inteiro ele retorna o produto:
exec sp_teste @nome = 'chai';
CódigoDoProduto NomeDoProduto
1 Chaimas quando executo assim: exec sp_teste @nome = 'cha'. Essa última execução seria o equivalente a like '%cha%'.
Alguém sabe como fazer isso?
Agradeço a ajuda de vocês.
- Movido Gustavo Maia Aguiar quarta-feira, 15 de agosto de 2012 17:28 (De:Gerenciamento, Configuração, Instalação, e Segurança)
Respostas
-
Olá SmrBkp,
tenta assim:
CREATE PROCEDURE sp_teste ( @nome varchar(60) ) as begin SELECT CódigoDoProduto, NomeDoProduto FROM Produtos where NomeDoProduto like '%' + @nome + '%' end
Se ajudou, marca como resposta para ajudarmos outras pessoas com a mesma dúvida.- Editado Andre_Bel quarta-feira, 15 de agosto de 2012 15:01
- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 15 de agosto de 2012 15:32
- Marcado como Resposta Harley Araujo sexta-feira, 17 de agosto de 2012 13:28
-
Obrigado pela dica Andre_Bel.
Consegui fazer dessa maneira:
USE AdventureWorks2008R2;
GO
create PROCEDURE FindEmployee @EmpLName varchar(20)
AS
SELECT @EmpLName ='%' + @EmpLName + '%';
SELECT p.FirstName, p.LastName, a.City
FROM Person.Person p JOIN Person.Address a ON p.BusinessEntityID = a.AddressID
WHERE p.LastName LIKE @EmpLName;
GO
EXEC FindEmployee @EmpLName = 'Abe';
GOPeguei a idéia desse link: http://msdn.microsoft.com/pt-br/library/ms179859.aspx
Valeu!! Fica a dica a quem tiver a mesma dúvida!
SMRBKP
- Marcado como Resposta Harley Araujo sexta-feira, 17 de agosto de 2012 13:28
Todas as Respostas
-
Olá SmrBkp,
tenta assim:
CREATE PROCEDURE sp_teste ( @nome varchar(60) ) as begin SELECT CódigoDoProduto, NomeDoProduto FROM Produtos where NomeDoProduto like '%' + @nome + '%' end
Se ajudou, marca como resposta para ajudarmos outras pessoas com a mesma dúvida.- Editado Andre_Bel quarta-feira, 15 de agosto de 2012 15:01
- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 15 de agosto de 2012 15:32
- Marcado como Resposta Harley Araujo sexta-feira, 17 de agosto de 2012 13:28
-
Obrigado pela dica Andre_Bel.
Consegui fazer dessa maneira:
USE AdventureWorks2008R2;
GO
create PROCEDURE FindEmployee @EmpLName varchar(20)
AS
SELECT @EmpLName ='%' + @EmpLName + '%';
SELECT p.FirstName, p.LastName, a.City
FROM Person.Person p JOIN Person.Address a ON p.BusinessEntityID = a.AddressID
WHERE p.LastName LIKE @EmpLName;
GO
EXEC FindEmployee @EmpLName = 'Abe';
GOPeguei a idéia desse link: http://msdn.microsoft.com/pt-br/library/ms179859.aspx
Valeu!! Fica a dica a quem tiver a mesma dúvida!
SMRBKP
- Marcado como Resposta Harley Araujo sexta-feira, 17 de agosto de 2012 13:28