10. april 2007 - 13:13Der er
4 kommentarer og 1 løsning
Kan man bruge jokertegn og variabler i en SP sammen?
Hej eksperter,
Lad os tage et eksempel med en simpel tabel:
CREATE TABLE tblName ( id INT NOT NULL PRIMARY KEY, lastname NVARCHAR(100) NOT NULL ) GO
INSERT INTO tblName (id, lastname) VALUES (1, 'Andersen') INSERT INTO tblName (id, lastname) VALUES (2, 'Rasmussen') INSERT INTO tblName (id, lastname) VALUES (3, 'Fisher') INSERT INTO tblName (id, lastname) VALUES (4, 'Molstrup') GO
Nu vil jeg gerne oprette en Stored Procedure som vælger alle navne som ender på en bestemt værdi, som jeg sender med sammen med SP'en. jeg kunne forestille mig noget lignende:
CREATE PROCEDURE SelectLastName @ending VARCHAR(3) AS SELECT * FROM tblName WHERE lastname LIKE @ending GO
Problemet er nu, at jeg umiddelbart ikke kan få jokertegnet (%) sat rigtigt ind så kun den sidste del af lastname undersøges. Er der nogen som har et bud på hvordan det kan løses?
CREATE PROCEDURE SelectLastName @search VARCHAR(3), @joker bit = 1 AS if (@joker = 1) SELECT * FROM tblName WHERE lastname LIKE @search% else SELECT * FROM tblName WHERE lastname = @search Go
CREATE PROCEDURE [dbo].[SelectLastName] @search VARCHAR(3), @joker bit = 1 AS if @joker = 1 SELECT * FROM tblName WHERE lastname LIKE @search + "%" else SELECT * FROM tblName WHERE lastname = @search
Ah...skulle lige se din anden besked først. Det var blot et spørgsmål om at tilføje et "+". Bortset fra det så skulle det ende på variabelnavnet, så det skulle nok se sådan ud:
CREATE PROCEDURE [dbo].[SelectLastName] @search VARCHAR(3), @joker bit = 1 AS if @joker = 1 SELECT * FROM tblName WHERE lastname LIKE "%" + @search else SELECT * FROM tblName WHERE lastname = @search
Det virker fint hos mig - kast et svar tilbage så får du dine point, hrc :-)
Hermed et svar. Tænkte nok min kreation skulle testes lidt før den virkede.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.