NL Computer Forum
Maak het zelf => Select * from SQL => Topic gestart door: RPA op 9 juni 2010, 19:17:48
-
Weet iemand hoe je met een like statement in SQL server 2008/2005 (volgens mij is het een algemeen probleem) kan maken indien je een naam zoekt met 1 of meerdere quotes in de naam?
Bijvoorbeeld iemand heeft L' Programmer, hoe maak je dan de like statement?
select * from relatie where relatienaam like '%L'%' wordt afgekeurd of
select * from relatie where relatienaam like "%L'%" wordt vanwege de dubbele quotes afgekeurd.
Is dit gewoon weg niet mogelijk of moet er een escape teken ergens staan?
-
Hoi RPA,
Er zijn ongetwijfeld meerdere mogelijkheden, wat ik zelf zou doen:
set quoted_identifier off
select * from relatie where relatienaam like "%L'%"
set quoted_identifier on
Hiermee verander je tijdelijk het teken waarmee je het begin en einde van strings aangeeft. :)
Deze code werkt in ieder geval op SQL2000 en SQL2008, en dus zeer waarschijnlijk ook met SQL2005.
Succes!
Groeten,
Ronald
-
Bedankt voor het antwoord, ik kende deze optie niet --> set quoted_identifier off
-
Oei, ik ben hier al heel lang niet meer geweest, zie ik. *schaam*
Vreemd overigens dat ik geen notificatie heb gekregen van dit topic, ik had notificatie voor dit board wel aangezet.
Enfin, toch nog even een antwoord (voor mensen die hier via google terecht komen, want ik denk niet dat dit voor RPA nog relevant is).
De meest gebruikelijke manier om een single quote in een string op te nemen in SQL Server, is door de quote te verdubbelen. Dus:
DECLARE @Tekst varchar(20);
SET @Tekst = 'Brien O''Hare';
zal de variabele @Tekst vullen met de naam Brian O'Hare.
Bij een LIKE werkt dat precies zo:
select * from relatie where relatienaam like '%L''%'
-
Hoi Hugo,
Nog zeer bedankt voor deze tip! :D
Groeten,
Ronald