2010-08-17 57 views

回答

9

你已經有答案了。您必須使用兩個單引號:

select * from table where field like '%''something''%' 
2

最好的方法是將參數與ADO或ADO.NET綁定。

贊(在C#中使用ADO.NET爲例):

SqlCommand x = new SqlCommand(sqlConnection, @"select * from table where col like '%'[email protected]+'%'"); 
x.parameters.add(new SqlParameter("@para1",sqltype.varchar,100)).value = "this is a' test"; 

SQL Server 2005你逃單引號( ')用雙單引號(''),如果你不想綁定:

select * from table where col like '%this is a'' test%' 
+0

謝謝bdukes,我根本沒有注意到 – Floyd 2010-08-18 06:53:46

2

兩個單引號是最好的解決方案。

或者,你可以使用一個CHAR(39)來表示一個單引號字符。

UPDATE Employee SET LastName = 'O' + CHAR(39) + 'Brien' 
WHERE ID=1; 
+0

CHAR(39)在SQL中不起作用 – Egalitarian 2010-08-18 06:15:35

1

也有 「Q-報價」 的方法:

select * from mytable where text like q'#%Here's some text%#'; 

這是可用,因爲甲骨文10.2。

我用「#」字符作爲分隔符的報價,但您可以使用幾乎不會出現的字符串(也有少數例外,如空格字符)的任何字符。

在一個簡單的例子,像上面我可能不會這麼做。我只是將單引號加倍,但在構建包含大量字符串文字的大型動態SQL語句時,它確實派上用場。

+0

這不是隻適用於PL/SQL塊嗎?我想我們不能在普通的SQL中使用它。 – XING 2016-08-09 12:24:59