2012-04-13 90 views
4

關於在Microsoft SQL Server中使Like關鍵字充當區分大小寫的任何輸入。Microsoft SQL Server Like關鍵字

例如:名稱Like'David'取得所有名字David或david或daVid等 我的目標是隻取得David.I有興趣瞭解來自專家的不同方式。

+3

如何被存儲的數據?哪個DBMS? – Anonymous 2012-04-13 11:45:07

+0

SQL SERVER 2008 R2 – 2012-04-13 11:46:30

+0

您是否嘗試過使用SQL Colation解決方案? – 2012-04-13 11:53:03

回答

1

這取決於您使用的數據庫。例如,如果您爲表或數據庫選擇不區分大小寫的排序規則,則區分大小寫,否則區分大小寫。

4

您需要使用排序規則。

SELECT * FROM myTable 
WHERE LastName COLLATE Latin1_General_CS_AS = 'smyTH' 
+0

@karthikgorijavolu - 要通過一個子字符串來完成,你可以添加下面的WHERE子句替換爲: WHERE SUBSTRING(LastName,1,5)COLLATE Latin1_General_CS_AS ='smyTH' – 2012-04-14 00:06:49

1

LIKEin PostgreSQL是大小寫敏感而ILIKE是不區分大小寫的。所以這會隨着你使用的DBMS而變化。

2

下面是一個例子使用Darren Davis的回答

declare @tmp table (LastName nvarchar(10)) 

insert @tmp 
select ('Gorijavolu') 

select LastName As 'CorrectCase' from @tmp WHERE SUBSTRING(LastName,1,4) COLLATE Latin1_General_CS_AS = 'Gori' 
select LastName AS 'WrongCase' from @tmp WHERE SUBSTRING(LastName,1,4) COLLATE Latin1_General_CS_AS = 'gori' 

給出:

CorrectCase 
----------- 
Gorijavolu 
(1 row(s) affected) 

WrongCase 
---------- 

(0 row(s) affected)