Alt çizgi karakterinden nasıl kaçarım?
Aşağıdaki maddeye benzer bir şey yazıyorum ve sonunda _d ile gerçek girdileri bulmak istiyorum.
Where Username Like '%_d'
Alt çizgi karakterinden nasıl kaçarım?
Aşağıdaki maddeye benzer bir şey yazıyorum ve sonunda _d ile gerçek girdileri bulmak istiyorum.
Where Username Like '%_d'
Yanıtlar:
Joker karakter desenini karakterleri değişmez karakterler olarak kullanabilirsiniz. Bir joker karakteri değişmez karakter olarak kullanmak için, joker karakteri parantez içine alın. Aşağıdaki tabloda LIKE anahtar sözcüğünü ve [] joker karakterlerini kullanmanın birkaç örneği gösterilmektedir.
Davanız için:
... LIKE '%[_]d'
Açıkçası @Lasse çözümü doğrudur, ancak sorununuzu çözmenin başka bir yolu daha vardır: T-SQL operatörü LIKE
, bir sonraki karakterden kalıba kaçacak bir karakter bildirmenizi sağlayan isteğe bağlı ESCAPE deyimini tanımlar .
Sizin durumunuz için aşağıdaki WHERE cümleleri eşdeğerdir:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
ESCAPE
yan tümce SQL standardının bir parçasıdır ve yalnızca SQL Server üzerinde değil, herhangi bir DBMS üzerinde çalışır.
Bu çözümler tamamen mantıklı. Ne yazık ki, ikisi de beklediğim gibi benim için çalıştı. Onunla uğraşmaya çalışmak yerine, bir çalışma ile gittim:
select * from information_schema.columns
where replace(table_name,'_','!') not like '%!%'
order by table_name
Bu benim için çalıştı, sadece kaçışını kullan
'%\_%'
Bunların hiçbiri benim için SSIS v18.0'da işe yaramadı, bu yüzden böyle bir şey yapardım: ..burada alt çizgileri olan
WHERE CHARINDEX('_', thingyoursearching) < 1
dizeleri görmezden gelmeye çalışıyorum. Alt çizgisi olan şeyleri bulmak istiyorsanız, ters çevirin:
WHERE CHARINDEX('_', thingyoursearching) > 0