SQL SERVER 使用ESCAPE轉義


使用SQL語句查詢是開發中常做的事,在實際的情況中,可能會遇到,查詢包含某個關鍵詞的所有行,而這個關鍵詞正好也是SQL SERVER的關鍵詞。

下面有一張表Member,有如下的數據:

假如需要查詢名字中包含%字符的數據,首先我們會有這樣的查詢語句:

SELECT * FROM dbo.Member WHERE Name LIKE '%%%'

但是由於%在SQL SERSER中是關鍵字,此時需要轉義,沒有轉義的寫法可以如下:

SELECT * FROM dbo.Member WHERE Name LIKE '%[%]%'

轉義的寫法如下,使用ESCAPE指定轉義符:

SELECT * FROM dbo.Member WHERE Name LIKE '%~%%' ESCAPE '~'

 

在項目中使用Entity Framework時,比如名稱是否包含%,則DBContext.Set<Member>().Where(m => m.Name.Contains("%")),然后使用SQL Profiler可以看出Entity Framework生成的SQL是使用了~作為轉義符。開發中如果是我們手寫SQL(非ORM自動生成),轉義符可以自由指定,例如:\

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM