自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫(kù)中正確使用DISTINCT大小寫(xiě)

數(shù)據(jù)庫(kù) SQL Server
以下的文章主要向大家講述的是SQL Server數(shù)據(jù)庫(kù)中正確使用DISTINCT的大小寫(xiě)問(wèn)題,一些就是文章的主要內(nèi)容的主要內(nèi)容描述。

我們今天是要和大家一起討論的是SQL Server數(shù)據(jù)庫(kù)中正確使用DISTINCT的大小寫(xiě)問(wèn)題,在實(shí)際操作中SQL Server為你提供了在你的數(shù)據(jù)庫(kù)中存儲(chǔ)混合的大小寫(xiě)數(shù)據(jù)的實(shí)際操作能力,但是根據(jù)你怎樣創(chuàng)建數(shù)據(jù)庫(kù),SQL Server將在你給出T-SQL命令時(shí)忽視大小寫(xiě)。

你可能面對(duì)的一個(gè)問(wèn)題是你想從一個(gè)表獲得只包含不同值的列表,來(lái)顯示你的表中不

 

SQL Server為你提供了在你的數(shù)據(jù)庫(kù)中存儲(chǔ)混合大小寫(xiě)數(shù)據(jù)的能力,但是根據(jù)你怎樣創(chuàng)建數(shù)據(jù)庫(kù),SQL Server數(shù)據(jù)庫(kù)將在你給出T-SQL命令時(shí)忽視大小寫(xiě)。你可能面對(duì)的一個(gè)問(wèn)題是你想從一個(gè)表獲得只包含不同值的列表,來(lái)顯示你的表中不同,但是如果你的數(shù)據(jù)庫(kù)是按照不區(qū)分大小寫(xiě)來(lái)建立的,那么SQL Server數(shù)據(jù)庫(kù)中使用DISTINCT條件語(yǔ)句不會(huì)顯示這些不同,它只會(huì)將所有的值放在一起。所以在這方面有什么選擇嗎?

 

專(zhuān)家解答

 

為了說(shuō)明這個(gè)動(dòng)作,我們將使用一個(gè)區(qū)分大小寫(xiě)和一個(gè)不區(qū)分大小寫(xiě)的數(shù)據(jù)庫(kù)來(lái)看看它工作的兩種方式。

第一組查詢使用了AdventureWorks數(shù)據(jù)庫(kù),它被配置為區(qū)分大小寫(xiě)。為了得到從你的數(shù)據(jù)庫(kù)而來(lái)的集合,你可以運(yùn)行這個(gè)查詢:

  1. SELECT name, collation_name   
  2. FROM master.sys.databases  

我們將查詢AdventureWorks數(shù)據(jù)庫(kù)中的Preson.Contact的數(shù)據(jù)。所有的數(shù)據(jù)都是作為混合大小寫(xiě)來(lái)建立的,所以當(dāng)我們運(yùn)行這個(gè)查詢的時(shí)候我們沒(méi)有得到重復(fù)的值。

 

  1. SELECT DISTINCT TOP 10 FirstName   
  2. FROM Person.Contact   
  3. WHERE FirstName LIKE 'A%'   
  4. ORDER BY 1  

如果你更新一條記錄并將FirstName從“Adam”改為“ADAM”,那么當(dāng)運(yùn)行這個(gè)查詢時(shí)我們會(huì)獲得兩個(gè)不同的值。

  1. UPDATE Person.Contact   
  2. SET FirstName = 'ADAM'   
  3. WHERE ContactID = 62   
  4. GO   
  5. SELECT DISTINCT TOP 10 FirstName   
  6. FROM Person.Contact   
  7. WHERE FirstName LIKE 'A%'   
  8. ORDER BY 1  

正如你看到的,現(xiàn)在“Adam”和“ADAM”作為不同的值來(lái)顯示。

 

 

下一步我們將要做的是在一個(gè)不區(qū)分大小寫(xiě)的數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)新表然后從Person.Contact加載所有的數(shù)據(jù)到這個(gè)新表中。

  1. CREATE TABLE Test.dbo.contact (FirstName nvarchar(50))   
  2. GO   
  3. INSERT INTO Test.dbo.contact   
  4. SELECT FirstName FROM Person.Contact   
  5. GO   
  6. SELECT DISTINCT TOP 10 FirstName   
  7. FROM Test.dbo.contact   
  8. WHERE FirstName LIKE 'A%'   
  9. ORDER BY 1   
  10. GO  

當(dāng)我們運(yùn)行SELECT查詢時(shí)你可以看到輸出將“Adam”和“ADAM”結(jié)合起來(lái),因?yàn)椴粎^(qū)分大小寫(xiě)。

 

 

為了解決這個(gè)問(wèn)題我們可以將這個(gè)查詢按照下面的方式修改使得這個(gè)收集在FirstName字段上區(qū)分大小寫(xiě)。

  1. SELECT DISTINCT TOP 10 FirstName COLLATE sql_latin1_general_cp1_cs_as   
  2. FROM Test.dbo.contact   
  3. WHERE FirstName LIKE 'A%'   
  4. ORDER BY 1  

當(dāng)這個(gè)運(yùn)行時(shí),我們看到了值“Adam”和“ADAM”。

 

 

所以根據(jù)你的數(shù)據(jù)庫(kù)是怎樣建立的,你將能夠或不能看到這個(gè)不同。

為了給你顯示另一個(gè)例子,下面是一個(gè)快速選擇區(qū)分大小寫(xiě)或不區(qū)分大小寫(xiě)選項(xiàng)的方法。

我們運(yùn)行的第一個(gè)查詢是SQL Server數(shù)據(jù)庫(kù)中使用區(qū)分大小寫(xiě),所以四條記錄都將顯示出來(lái)。

  1. select distinct (item) COLLATE sql_latin1_general_cp1_cs_as   
  2. FROM (   
  3. select 'abcd' item   
  4. union all select 'ABCD'   
  5. union all select 'defg'   
  6. union all select 'deFg') items  

第二個(gè)查詢中不同的是收集的名稱(chēng)。當(dāng)這個(gè)查詢使用不區(qū)分大小寫(xiě)時(shí),我們只獲得兩條記錄。

  1. select distinct (item) COLLATE sql_latin1_general_cp1_ci_ai   
  2. FROM (   
  3. select 'abcd' item   
  4. union all select 'ABCD'   
  5. union all select 'defg'   
  6. union all select 'deFg') items  

以上的相關(guān)內(nèi)容就是對(duì)SQL Server數(shù)據(jù)庫(kù)中使用DISTINCT的大小寫(xiě)問(wèn)題的介紹,望你能有所收獲。

 

責(zé)任編輯:佚名 來(lái)源: 《商務(wù)周刊》
相關(guān)推薦

2010-06-28 10:36:42

SQL Server數(shù)

2010-07-01 11:14:36

SQL Server

2010-06-17 12:35:49

SQL Server數(shù)

2010-07-01 16:52:53

SQL Server數(shù)

2010-11-23 13:42:18

mysql數(shù)據(jù)庫(kù)大小寫(xiě)

2010-07-12 14:55:34

SQL Server

2010-06-18 13:14:26

SQL Server

2010-06-07 13:00:34

MySQL數(shù)據(jù)庫(kù)

2010-03-04 14:02:51

Python大小寫(xiě)

2010-07-01 15:02:29

SQL Server數(shù)

2010-06-04 20:04:10

MySQL數(shù)據(jù)庫(kù)大小寫(xiě)

2010-05-05 10:19:19

Oracle數(shù)據(jù)導(dǎo)

2010-06-30 08:27:45

SQL Server數(shù)

2021-06-04 10:30:41

MySQL表名大小

2010-07-21 10:05:29

SQL Server排

2010-07-15 17:28:50

SQL Server

2010-11-25 16:09:58

mysql查詢大小寫(xiě)

2010-06-07 14:34:49

連接MySQL 數(shù)據(jù)庫(kù)

2010-07-16 10:29:02

SQL Server

2010-07-07 10:31:43

SQL Server數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)