Avatar billede meltinis Nybegynder
09. maj 2007 - 11:45 Der er 1 kommentar og
1 løsning

LIKE statement som variabel

Jeg har en SP hvor jeg begrænser ved en LIKE. Den bruges til en søgefunktion på siden så LIKE værdien bliver sendt som paramenter. Hvordan gør jeg det? Jeg har følgende kode som SQL serveren accepterer, men der kommer ikke nogen data når den kører med en værdi i variablen:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE UserList
    @searchstring char(100)
AS
BEGIN
    SET NOCOUNT ON;
    --set @searchstring = \'%\' + @searchstring + \'%\'

    SELECT U.userID, U.Name, U.firmID, U.username, U.accesslevel, U.loginDate,max( [date]), U.deleted 
    FROM T_User U LEFT JOIN T_Data D ON U.userID = D.userID WHERE U.deleted = 0 AND U.Name LIKE '%'+@searchstring+'%'
    GROUP BY U.userID, U.Name, U.firmID, U.username, U.accesslevel, U.loginDate, U.deleted
    ORDER BY U.firmID
END
GO
Avatar billede meltinis Nybegynder
09. maj 2007 - 13:42 #1
Jeg har fundet ud af problemet selv - fejlen lå i at jeg benyttede char(100) og ikke varchar(00). Char udfylder de resterende pladser med blanke karakterer hvis strengen er mindre end de 100. SQL serveren så altså søgestrengen som LIKE '%etellerandet          %', men med varchar ser den LIKE '%etellerandet%'. Lile detajle, men ret så vigtig :)
Avatar billede meltinis Nybegynder
09. maj 2007 - 13:43 #2
I ovenstående skulle der naturligvis stå varchar(100) og ikke varchar(00)!!!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester