我正在尝试在普及SQL中编写一个查询,该查询与“ LIKE”子句匹配,但不区分大小写。
作为示例,我希望以下查询同时匹配“ john”,“ John”和“ JOHN”。目前,这是区分大小写的。
SELECT name FROM table WHERE name LIKE ?
在T-SQL中,我将UPPER包裹在WHERE子句的两个部分,如下所示:
SELECT name FROM table WHERE UPPER(name) LIKE UPPER(?)
但是,将任何函数放在WHERE子句的右侧都会失败,并出现语法错误。
如何实现不区分大小写的搜索?
答案 0 :(得分:0)
我能想到的唯一方法是在创建SQL语句之前更改即将出现的值的大小写。像这样的C#ish代码:
string value = "world";
sql = "SELECT name FROM table WHERE name LIKE = '" + value.ToUpper();
或者,甚至最好使用Parameters并在设置参数之前设置值。
您是对的,在LIKE
的右侧具有函数将导致语法错误。您可能需要将其作为错误报告给Actian。