我有一個文章表,如下圖所示:特殊字符不工作
create table article(
artID int,
arttitle varchar(50)
)
我在下面插入4個記錄:
insert into article values (1,'abcd');
insert into article values (2,'asfsdf asdf sdf ');
insert into article values (3,'asdfasdfa sd ');
insert into article values (4,'abcasdfsdd [Little]');
創建一個測試存儲過程:
create procedure test
@aID int = null,
@atit varchar(50) = null
as
select * from article where artID = COALESCE(@aID,artID) and
arttitle like '%'+COALESCE(@atit,arttitle)+'%';
這裏的問題是: 當我執行此sp
與aid = 1
它與該記錄的結果和類似的aid
2和3. 但是,當我與aid = 4
執行時沒有結果是由於那些square brackets [Little]
。
這裏是存儲過程的執行腳本:
exec test @aID = 4;
請幫我實現這一目標。謝謝! 這裏是sqlfiddle link
這對我很有用,因此將其標記爲答案。但我想知道爲什麼特殊字符沒有被COALESCE處理。 –
它不是'coalesce',它是''''操作符。 –
@Evaldas:是的,如果我們想在類似的查詢中使用'COALESCE',我們需要使用'ESCAPE'\''。 但是,至於問題,我認爲只是爲了檢查'是否爲空'就足以解決錯誤。 –