查询匹配区分大小写

时间:2014-03-20 14:09:54

标签: sql-server tsql case case-insensitive

我有以下查询,正在寻找'BG'的销售人员。

SELECT *
  FROM [dbo].[JobOrders]
  where [salesperson] = 'BG'

当我使用'bg'时,我没有得到结果。据我所知'BG''bg'会带来相同的结果。

是否有可以防止这种情况的设置?

3 个答案:

答案 0 :(得分:0)

为避免这种情况,您可以随时使用大写

进行检查
SELECT *
  FROM [dbo].[JobOrders]
  where upper([salesperson]) = 'BG'

答案 1 :(得分:0)

您的salesperson列几乎肯定是外键,因此可能会被一致的值限制(即它们应该都是大写),所以:

SELECT *
FROM [dbo].[JobOrders]
WHERE [salesperson] = UPPER('bg')

这将允许索引仍然用于salesperson列。

答案 2 :(得分:0)

您可以使用排序规则使其不区分大小写:

SELECT *
FROM [dbo].[JobOrders]
where [salesperson] = 'BG' COLLATE SQL_Latin1_General_CP1_CI_AS