sql-server – 仅将SQL Server中每个句子的每个单词的首字母大写
发布时间:2020-12-24 19:46:27 所属栏目:MsSql教程 来源:网络整理
导读:我想只将SQL列中每个句子的每个单词的第一个字母大写. 例如,如果句子是: ‘I like movies’ 然后我需要输出: ‘I Like Movies’ 查询: declare @a varchar(15) set @a = 'qWeRtY kEyBoArD'select @a as [Normal text],upper(@a) as [Uppercase text],lo
我想只将SQL列中每个句子的每个单词的第一个字母大写. 例如,如果句子是:
然后我需要输出:
查询: declare @a varchar(15) set @a = 'qWeRtY kEyBoArD' select @a as [Normal text],upper(@a) as [Uppercase text],lower(@a) as [Lowercase text],upper(left(@a,1)) + lower(substring(@a,2,len(@a))) as [Capitalize first letter only] 在这里,我只在我的专栏中做了上,下,首字母大写(这里我只是一个随机的单词). 这是我的结果: 有没有可能做到这一点? 没有使用用户定义函数获得结果的任何可能性? 我需要输出Qwerty键盘 解决方法declare @a varchar(30); set @a = 'qWeRtY kEyBoArD TEST<>&''"X'; select stuff(( select ' '+upper(left(T3.V,1))+lower(stuff(T3.V,1,'')) from (select cast(replace((select @a as '*' for xml path('')),' ','<X/>') as xml).query('.')) as T1(X) cross apply T1.X.nodes('text()') as T2(X) cross apply (select T2.X.value('.','varchar(30)')) as T3(V) for xml path(''),type ).value('text()[1]','varchar(30)'),'') as [Capitalize first letter only]; 这首先通过用空标记< X />替换所有空格将字符串转换为XML.然后它使用nodes()粉碎XML以获得每行一个单词.要将行返回到一个值,它将使用for xml path trick. (编辑:应用网_镇江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
- sql – 为什么此查询不会发生分区消除?
- SQL SERVER中Key Hash Value的作用(下) - MSSQ
- sql-server – SQL Server注入 – 26个字符中有多
- Macromedia FreeHand MX正式推出 界面更加流畅
- sql-server – 在SAN环境中对SQL索引进行碎片整理
- sql-server – 在Sql Server中,有没有办法检查选
- 爱国者788HD以高性价比成目标消费大赢家!
- sql-server – 根据Sql Server中的选定行生成插入
- SQL Server BI Step by Step SSIS 7 (End)
- 通过分析SQL语句的执行计划优化SQL
热点阅读