`

SQL Server 轻松修改数据的大小写

    博客分类:
  • sql
阅读更多


无论是从网站、内部应用程序,还是从文件将数据输入到SQL Server系统中,数据的展示都是一个应当始终关注的问题。

  【IT专家网独家】本文我们将创建一个在更新数据或以一种让人看起来顺眼的方式为终端用户展示数据方面非常有用的函数。本文的例子适用于SQL Server 2000及以上的版本。

  数据展示(data presentation)

  数据被源系统接收并加工时,并不总是以一种看起来很舒服的形式出现在我们面前的。例如可能所有的数据都是大写的或所有数据都是小写的,数据可能在必要的地方没有添加标点符号等类似的情况都会出现。

  很多时候,数据展示并不是什么大不了的事情,也就是从数据库将数据抽取出来并按照它们的原样呈现出来。不过,有些时候,我们就有必要让数据看起来更像样一点,例如将数据放到网页上的时候。

  展示数据的方法有好几种,有可以通过网页代码本身展示,还有可以在数据库里进行格式化。下面的例子将介绍一个简单的函数,你可以用它来返回数据到终端用户或在数据库中更新数据,这样数据就可以一直以同一种方式来储存。

  下面就是用来创建名为udf_CorrectCasing函数的脚本。这个函数将接受任何长度的字符串,并返回相同的字符串,但字符串中每个单词的首字母都会转换为大写字母,而单词剩下的部分都转换为小写字母。例如,如果将字符串“hello guys”传递给函数,那么就会返回“Hello Guys”:

CREATE FUNCTION udf_CorrectCasing
(
     @String VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
BEGIN
     DECLARE @Length INT, @Increment INT, @NewString VARCHAR(MAX)
     DECLARE @CurrentCharacter CHAR(1), @PreviousCharacter CHAR(1)   

     SET @Length = LEN(LTRIM(RTRIM(@string)))
     SET @Increment = @Length - 1
     SET @NewString = ''
     SET @PreviousCharacter = ''
     SET @String = LOWER(@String) 

     WHILE @Increment >= 0
     BEGIN
         SET @CurrentCharacter = SUBSTRING(@String, (@Length-@Increment), 1)
         SET @NewString = @NewString + CASE WHEN @PreviousCharacter = '' THEN
                  UPPER(@CurrentCharacter) ELSE @CurrentCharacter END
         SET @PreviousCharacter = @CurrentCharacter
         SET @Increment = @Increment - 1
     END
     RETURN(@NewString)
 
END

  函数详解

  我们需要将传递给该函数的字符串中的所有字符都循环一遍,看看是不是按我们的需要改变大小写状态。这可能会让函数运行起来相对慢些,但不会慢到你能注意到的地步。还有其他的方法可以完成这个函数的任务,例如在公共语言运行库(CLR)中使用正则表达式(regular expression),不过对于我们要达到的目的,用这个函数就可以了。

  首先,我们确定字符串的长度。接着,我们设置了一些随后将在函数中用到的协助器变量。然后,我们将所有的字符都设置为小写。在循环里,我们创建了一个新字符串,添加最新字符并通过检查前一个字符是否为空格符来决定该字符的大小写状态。如果前一个字符是空格符,那么下一个字符就应当转换为大写状态。一旦把字符串里所有的字符都循环了一遍,就返回该新字符串。
 下面是如何调用这个udf_CorrectCasing函数的一个例子:

  SELECT dbo.udf_CorrectCasing(Address) FROM Customers;

  下面是如何调用这个函数去更新名为Customers表中的Address列数据的一个例子:

  UPDATE Customers

  SET Address = dbo.udf_CorrectCasing(Address)

  按需而变

  上面编写的这个函数只是一个简单的函数,用来把你传递到该函数的所有单词的首字母转换为大写形式。虽然有一定的用处,但很可能并不能满足你对“美化”数据的所有要求。你可能需要将所有类似于DBA、SQL这类缩写名称或者DR、MR等姓名前缀的所有字母都以大写形式呈现,或者还要在这些单词的各个字母后面加上一个句点。

  你可以对这个函数进行一些改进,一遍得到你想要的结果。如果你在尝试的过程中失败了,可以重新复制这个脚本再从头开始改编。

分享到:
评论

相关推荐

    sql server 直接读取excel

    总之,SQL Server通过OLEDB提供程序可以直接读取和操作Excel文件,但这通常适用于小规模、临时性的数据处理。对于大规模或长期的数据管理,推荐将数据导入数据库或使用ETL工具进行更高效和安全的处理。

    仿sqlserver 编辑器

    【描述】:“msde安装后无进和修改数据时不太方便,于是写了个仿sqlserver 编辑器,由于初学,还请见谅。” MSDE是SQL Server的一个精简版,它提供了核心的数据库引擎服务,但不包含完整的图形化管理工具。在MSDE...

    SQL 2005 Compact Edition数据存储

    SQL Server 2005 Compact Edition (SSCE) 是一种轻量级且功能强大的数据存储引擎,特别适合用于客户端应用程序和小型服务器应用程序的开发。它为开发者提供了在资源有限环境中处理数据存储问题的有效解决方案。 ...

    2011年度十大SQL Server技巧文章 pdf

    PowerPivot for Excel 是一款强大的数据分析工具,它允许用户轻松地从SQL Server数据库导入大量数据到Excel环境中进行分析。 - **优势** - **高效数据处理**:PowerPivot支持大量数据的高效处理。 - **直观的...

    1第八章SQLServer数据库系统概述.ppt

    SQL Server的标识符和命名规则遵循一定的规范,如区分大小写、限制长度、避免使用SQL关键字等,以确保代码的可读性和正确性。遵循这些规则可以提高代码质量,减少潜在错误。 总之,SQL Server作为一个成熟的数据库...

    SQL一键重置SA密码工具.rar

    4. **重置密码**:在相应字段输入新的SA密码,确保密码符合SQL Server的安全策略,即包含大小写字母、数字和特殊字符的组合,长度至少8个字符。确认新密码后,点击“重置”按钮。 5. **验证连接**:重置密码后,...

    模具管系统,Python+Pyqt5+sqlserver

    模具管理系统是针对小型企业设计的一款应用,它利用Python编程语言,结合PyQt5图形用户界面库,以及SQL Server数据库技术,实现了一套高效、易用的模具管理解决方案。这款系统的特点在于其开源性质,所有代码均对...

    SQL注入攻击实验报告

    - 危害大:一旦成功,可以控制整个Web系统,对数据进行任意修改。 #### 三、SQL注入攻击过程详解 1. **判断Web环境是否可以SQL注入**:分析URL,确定是否存在可用于数据库查询的参数。 2. **寻找SQL注入点**:向...

    ASP.NET 2.0+sql2005电子商务网站

    在这个项目中,ASP.NET 2.0 作为Web应用程序框架,提供了强大的服务器端编程模型,而SQL Server 2005则作为数据库管理系统,存储并管理网站的所有数据。 **ASP.NET 2.0** ASP.NET 2.0 是.NET Framework的一部分,它...

    轻松用sql语言实现对数据库的备份

    本文将深入解析如何利用SQL语言轻松实现数据库备份,掌握这一技能对于任何数据库管理员或SQL语言高手而言都是至关重要的。 ### SQL语言实现数据库备份的关键知识点 #### 1. **基础命令结构** 备份数据库的基本SQL...

    t-sql 使用小技巧

    这里`Chinese_PRC_Stroke_ci_as`是中文排序规则,`ci`代表不区分大小写,`as`表示对重音不敏感。 2. **数据库加密**: SQL Server提供了`ENCRYPTBYKEY`和`DECRYPTBYKEY`函数用于加密和解密数据。不过在描述中提到的...

    VB+SQL2000写的企业文档管理系统

    【VB+SQL2000写的企业文档管理系统】是一个基于Visual Basic(VB)编程语言和Microsoft SQL Server 2000数据库系统开发的企业级文档管理解决方案。这个系统旨在为企业提供全面、高效且安全的文档存储、检索、共享和...

    SQL-入门新手教程(重要).doc

    SQL语句的书写需要注意,虽然大部分SQL对大小写不敏感,但某些系统可能有大小写要求。此外,分号有时用作语句的结束符,但并非所有系统都需要。在SQL中,DML(Data Manipulation Language)包括查询、插入、更新和...

    SQL_中文实例教程

    SQL,全称Structured Query Language,即结构化查询语言,是一...记住,SQL对大小写不敏感,且是否在语句末尾添加分号取决于使用的数据库系统。掌握SQL对于任何涉及数据管理和分析的IT专业人员来说都是至关重要的技能。

    数据导入与数据导出Excel.rar

    数据回盘是指在修改了CSV文件中的数据后,将这些更改导入回Access数据库的过程。这通常需要编写程序或使用数据库管理工具来实现。在.NET环境中,可以使用ADO.NET库,通过连接Access数据库,读取和写入数据。首先,...

    OceanBase0.4:从API到SQL.pptx

    OceanBase 0.4版本特别适合于数据总量大但日常更新量相对较小的业务,例如电商平台的交易记录。在2012年的双十一活动中,1.1亿笔交易意味着11亿次数据库写操作,总计110GB的修改增量。OceanBase的架构设计能够有效...

    SQL日志收缩工具数据库精简用

    "SQL_server日志收缩工具.exe"这个文件很可能是用于执行上述操作的可执行程序,它简化了手动执行SQL命令的过程,使得非数据库专家也能轻松进行日志文件的管理和精简。在使用前,确保了解工具的使用方法,并在适当的...

Global site tag (gtag.js) - Google Analytics