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

无论是从网站、内部应用程序,还是从文件将数据输入到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 所有表字段第一个字母改小写 默认给每个表增加字段,并且第一个字母改小写 立即下载

相关推荐

SQL Server 设置数据区分大小写的五种方法

SQL Server 设置数据区分大小写的五种方法: 第一种:在数据库中简单设置一下即可。 第二种: ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS --不区分大小写 ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS --区分大小写 alter database 数据库 COLLATE Chinese_PRC_CS_AS ............

数据库字段大小写更新语句

更新数据库某列字段大小写: update tablename set field1 = lower(field1)

Anna_Liqi的博客 425

SQLServer 设置单词首字母大写

代码如下: /* –SQLServer中将字符串首字母设置大写: –作者:jinjazz /csdn –SQLServer2005启用OLEAutomation sp_configure ‘show advanced options’, 1; go RECONFIGURE; go sp_configure ‘Ole Automation Procedures’, 1; go RECONFIGURE; go */ use tempdb go if (object_id (‘fn_toTitleCase’ ) is not null ) drop function dbo . fn_toTitle

mysql 更新大小写_将现有MySQL数据库改为大小写不敏感

用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在。而Windows下的MySQL却是大小写不敏感的,所有表名和数据库名都会变成小写。对于怎么启用或者停用MySQL数据库的大小写敏感,这个网上随便都能找到,就是改改参数lower_case_table_names,然后重启即可。但是,如果我们的数据库中已经有了多个区...

weixin_32391045的博客 569

多模态情感识别(MER)数据集实战指南:从IEMOCAP到应用落地

本文提供了多模态情感识别(MER)从数据集到应用落地的完整实战指南。以经典IEMOCAP数据集为例,详细讲解了音频、视觉、文本等多模态数据的预处理、特征提取与融合技术,并分享了模型训练调优心得及面向智能客服、在线教育等场景的部署考量,帮助开发者快速构建高效可用的MER系统。

h3i4j的博客 1071

BK3296蓝牙音频SoC深度评测:如何用这颗芯片打造超低功耗TWS耳机?

本文深度评测BK3296蓝牙音频SoC在TWS耳机中的应用,重点解析其22nm工艺带来的超低功耗优势(A2DP模式仅2.8mA)和3×3mm封装设计。通过芯片架构分析、双麦降噪调优及开发套件使用指南,为工程师提供打造高性能TWS耳机的完整解决方案,显著提升续航和音频质量。

rice5的博客 654

SQL Server大小写转换及字段类型转化

把字段的值转换为大写: UCASE(字段) 把字段的值转换为小写: LCASE(字段) 类型转化: convert(varchar,字段)

风吹老了好少年﹌的博客 1403

CYUSB3065配置CMOS

按照OG02B10的时序电路,在通过SCCB配置CMOS之前,需要三个电源上电,Xshutdown高电平和配置时钟电路。找到手册的第6章SCCB(跟IIC很像),可以看到SCCB的地址与SID引脚有关,这个需要到硬件原理图上确认下。这是Cypress的一个支持MIPI和UVC的模块,有例程支持OV5640,现在要替换替换成OG02B10。寄存器参数需要找到厂家的FAE,由他们提供,OG02B10的资料已经上传。(2)参考得宏的电路,时钟由主控提供,目前程序未实现。这里有两个重要参数需要搞定,摄像头的。

qq_40773212的博客 2946

SQL字符串基本操作汇总

 --===============================字符串使用汇总============================--将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处select stuff(hello,world!,4,4,****)  --返回值hel****orld!--返回从指定位置开始指定长度的字符串select substr

blackField的专栏 1649

matlab tolx,Nelder-Mead算法matlab

Nelder-Mead算法适合变量数不是很多的方程求极值.原理:Nelder-Mead法是利用多面体来逐步逼近最佳点x*.设函数变量为n维,则在n维空间里多面体有(n+1)个顶点.设x1,x2,...,xn+1为多面体的顶点,且满足:f(x1)<=f(x2)<=...<=f(xn+1)Nelder-Mead法试着将多面体中最差的顶点xn+1(也就是函数的最大点)以新的最佳点替代,...

weixin_36485298的博客 1480

Windows下玩转Spark:零基础本地集群搭建与实战演示

本文详细介绍了在Windows系统下零基础搭建Spark本地集群的完整流程,包括环境准备、集群启动、实战案例演示及性能优化技巧。通过Standalone模式快速部署,结合WordCount等经典案例帮助初学者快速掌握Spark数据处理,特别适合Windows环境下的大数据开发入门学习。

weixin_33734785的博客 425

sql 大小写转换(upper,lower)

将字符串全部转换成大写 输出 lower 将字符串全部转换成小写 输出 首字母大写,其他小写 left(‘abCdsE’,1):截取左边第1位字符串。 len(‘abCdsE’):获取字符串长度。 SUBSTRING(‘abCdsE’,2,len(‘abCdsE’)):截取从第2位到最后一位字符串。 输出...

weixin_51803498的博客 4157

IST——In-System-Test

安全性是自动驾驶平台的关键特性之一,而这些架构中使用的半导体芯片必须保证ISO 26262标准所要求的功能安全方面。为了监控由于现场缺陷导致的故障,在启动和/或关闭期间会自动运行系统内结构测试。当系统内测试(IST,In-System-Test)架构检测到任何永久性缺陷时,驾驶平台会做出响应,以实现系统的故障安全状态。汽车IC采用高质量测试方法进行筛选,以实现接近零的DPPM(每百万缺陷部件)。即使在这样的高测试标准下,由于环境或操作条件的影响,在系统现场运行过程中仍可能出现可靠性缺陷。

weixin_50518899的博客 3206

SQL SERVER查询区分大小写

       一般SQL Server数据库在查询数据的时候,都是默认不区分大小写的,但是如果我们有特殊需要,要对数据查询的时候区分大小写,我们可以使用COLLATE 来实现这个需求,测试数据:--测试数据 if not object_id(N'Tempdb..#T1') is null drop table #T1 Go Create table #T1(name VARCHAR(50)) I...

二月十六的博客 1万+

Centos 7 Linux 安装 JDK 8:下载、安装、配置环境变量、验证

本文详细介绍了在 CentOS 7 系统上手动安装 JDK 8 的完整流程,包括环境准备、JDK 安装包下载与上传、解压安装、配置全局环境变量,以及最终的验证步骤。适用于使用 VMware 虚拟机、云服务器或物理机的 CentOS 7 用户,操作清晰、步骤完整,帮助开发者快速搭建 Java 开发环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2579

【系统架构设计师-2026上半年真题】综合知识-参考答案及详解(75题完全回忆版)

【系统架构设计师-2026上半年真题】综合知识-参考答案及详解(75题完全回忆版)

数据知道的博客 3102

SQL查询区分大小写方法

<br />SQL SERVER 中,如果直接   select * from tablename where column1 = ' XXXX '    是不区分大小写的,那该如何做到让SQL区分大小写呢?<br /><br />collate解释上说其是选择排序用(太长,没用心看),但也可用在查询区分大小写上,如:<br />select * from tablename where    column1 collate Chinese_PRC_CS_AS= 'Xxxx'<br />select * f

折心的技术文档 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SQL Server执行数据库查询时不区分大小写

打开SQL Server Management Studio,选中需要进行字段修改的表,查看其属性修改方法如下:Step1:右键要修改的数据库,点击”新建查询“Step2:输入如下语句,点击执行(如果是不同的数据库则需要分开进行修改,同一个数据库中的不同列也要分别修改)ALTER   TABLE   dbo.Users     ALTER   COLUMN   username nvarchar(...

qq_33742119的博客 2538

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

mysql和sql互导_SQL Server与Excel数据互导

从SQL Server中导入/导出 Excel 的基本方法 /*=================== 导入/导出 Excel 的基本方法 ===================*/ 从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: /*=============================================================从SQL Ser...

weixin_30227789的博客 214

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SQL server 简介

SQL Server 是由微软公司开发的一种关系型数据库管理系统(RDBMS),用于存储和检索数据。它提供了一个可扩展的、安全的和可靠的数据存储和管理解决方案。SQL Server 主要用于构建企业级应用程序,支持大规模数据处理,并拥有强大的数据分析和报告功能。它提供了一套强大的工具和功能,可以有效地管理和操作数据库,包括数据模型设计、数据导入和导出、事务处理、数据备份和恢复。SQL Server 支持结构化查询语言(SQL),这是一种用于管理和操纵数据库的标准语言。

diaobusi的博客 3733

Sql Server 死锁(Deadlock )分析的方法

环境 Sql Server 数据库发生死锁。(非紧急情况或紧急情况) 方法 1. RML Utilities工具+Trace文件捕获死锁 2. DBCC捕获死锁 3. Profiler捕获死锁 4. Trace文件捕获死锁(很耗时在线下执行吧) 5. 自动部署Profiler捕获死锁 6. Service Broker事件通知捕获死锁 7. Extended Events捕获死锁 个人推荐方法1 ,下面将重点介绍它。(其他方法提供互联网链接) RML Utilities工具+Trace文件捕

一杯Mojito可以吗 1250

SQL Formatter:终极SQL代码美化工具,快速提升数据库查询可读性

在数据库开发和数据分析工作中,编写清晰易读的SQL代码是提高工作效率的关键。SQL Formatter作为一款强大的SQL代码美化工具,能够自动调整SQL语句的格式,让复杂的查询语句变得整洁有序,帮助开发者减少调试时间,提升团队协作效率。 ## 为什么需要SQL代码格式化工具? 面对冗长杂乱的SQL代码,即使是经验丰富的开发者也会感到头疼。未格式化的SQL语句往往存在缩进不一致、关键字大小写混

gitblog_00387的博客 948

SQL server 简单语法 包含创建数据库、建表、查询、插入、比较、排序、数据处理等

数据库(Database,DB):按照数据结构来组织、存储和管理数据的仓库,其本身可看作电子化的文件柜,用户可以对文件中的数据进行增加、删除、修改、查找等操作。数据库基于某种目的以及规则进行管理的数据汇总。用于操作数据库的语言。数据库的分类:分为层次型、网型、关系型。层次型数据库:数据由一对多的亲子节点所连接,类似于数据结构中的树结构,是一种很古老的数据库形态,很难对信息进行击中管理。网型数据库。

qq_55880219的博客 3951

sql server操作mysql_sql server 数据库操作命令

SQL,指结构化查询语言,全称是 Structured Query Language;SQL 对大小写不敏感,SELECT 与 select 是相同的。分号是在数据库系统中分隔每条 SQL 语句的标准方法,SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号),如果是数值字段,则不需要使用引号。一,表和数据库的创建和删除。1.创建关键字:create;数据库和表的创建可以用DBMS手动创...

weixin_26897585的博客 501
上一篇: java 加密
下一篇: SQL Server 跨数据库查询
itfafa
博客等级 码龄15年 3粉丝 90原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值