用任何类型的用户名/字段选择记录

时间:2014-01-09 14:25:32

标签: sql-server tsql sql-server-2012-express

我想创建一个sql语句,它接受任何给定名称的写入

select * from Mytable where username='Peter';

我没有注意在数据库中以正确的方式写Peter。现在我还想选择包含此内容的记录:

PETER
PeTER
PeteR
peteR
....

使用ADO和DELPHI XE 2以及MSSQL Server EXPRESS版本。

3 个答案:

答案 0 :(得分:2)

SQL Server排序规则SQL_Latin1_General_CP1_CS_AS - 不区分大小写的搜索。 如果数据库的默认排序规则不区分大小写,则可以明确地使查询忽略区分大小写。

select * from Mytable 
where Username COLLATE SQL_Latin1_General_CP1_CS_AS= @Username COLLATE SQL_Latin1_General_CP1_CS_AS;

答案 1 :(得分:1)

如果性能不重要,一个选项是在比较之前使每个小写(或大写):

SELECT * FROM MyTable WHERE LOWER(username) = LOWER('Peter');

答案 2 :(得分:-1)

你可以使双方大写或小写:

where UPPER(username) = 'PETER'