科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何使用SQL Server校勘功能(2)

如何使用SQL Server校勘功能(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

校勘(collation)是指对代码页、字母大小写、音调、语言和字母表的整理,很多校勘都是在数据进入数据库之前进行的。

作者:builder.com 来源:builder.com 2007年8月28日

关键字: 校勘 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件

假设您现在想把所有'fuller'形式的拼写改为'Fuller'(包括像'fUlLEr'这种毫无意义的拼写组合),通过列表D中的代码,您可以非常轻松地实现这一功能。

UPDATE CaseCheck.NamesSET Name = UPPER(LEFT(Name,1))
 + LOWER(SUBSTRING(Name,2,LEN(Name)-1))

列表D

从大型主机上导入数据的时候,我都会首先运行以上的代码,这样就不必再担心单词大小写的问题了。

如果您想查看所有的校勘选项及其简要说明,可以运行以下的SQL代码:SELECT * FROM ::fn_helpcollations()。

想要查看数据库当前的校勘设定,可以使用以下代码:

SELECT collation_name 

FROM master.sys.databases 

WHERE Name='SQLTips'

在列表E中,我添加了一些带有特殊字符的数据行,我使用了我的好朋友DejanSunderic的名字,他的名字应该拼写为Šunderic'(字母c实际上应该有重音符号的,由于使用的字体,所以显示成了现在的效果)。

INSERT INTO CaseCheck.Names VALUES 
(NChar(352)+ 'underi' + NChar(263))
INSERT INTO CaseCheck.Names VALUES 
('SUNDERIC')
INSERT INTO CaseCheck.Names VALUES
('sUnDeRI' + Nchar(263))
INSERT INTO CaseCheck.Names VALUES
('Sunderi' + Nchar(263))
GO

列表 E

如果不使用COLLATE,那么会发生非常有意思的事情,运行一下的查询语句:

SELECT * 

FROM CaseCheck.Names

WHERE Name LIKE  N'S%'

您得到的结果是:

NamePK    Name

6    SUNDERIC

7    sUnDeRIc

8    Sunderic

注意,带有特殊字符的'Šunderic'并没有被包含在内,
让我们再来看看另外一个实验:

SELECT * FROM CaseCheck.Names

ORDER BY Name
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章