首先我根据
@@version
使用这个SQL Server版本:
Microsoft SQL Server 2012 (SP4-GDR) (KB4583465) - 11.0.7507.2 (X64) - Nov 1 2020 00:48:37
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
正如标题所说,我正在尝试重新创建 Oracle SQL
InitCap()
或 Excel 的 Proper()
函数,它们为字符串提供正确的大写:
initcap("THis iS a STRIng")
返回:
This Is A String
但是系统限制如下:
String_Split
等较新的功能。它需要这些功能:
正确地将字符串字段中每个单词的每个第一个字母大写,同时将其余字母更改为小写,因为很可能整个字符串都是大写的。以数字开头的单词(即 234name)应大写第一个字母(234Name)。
可选:适应带有撇号的公司名称或以“Mc”开头的单词(即 MCDONALD 应生成 McDonald)。也许有一个 IN() 部分,我可以在其中添加更多例外。
很高兴拥有:允许我指定独立例外的部分,例如“LLC”(当作为独立单词更改为“Llc”时)。
所以我需要将代码包含在 SELECT 语句中:
SELECT
NumericField1 AS "Number Field",
(Smart Code Provided By StackOverFLow User(StringField1)) AS "Customer Name",
...
FROM
DataBaseTable
这可以实现吗?
我已经尝试了此处建议的其他选项,但不幸的是我无法使用函数(实际上是 CREATE 命令),并且此环境使用 Microsoft SQL Server 2012 (SP4-GDR),因此我无法使用也建议的较新关键字。
这可以实现吗?
在这些限制下,这是无法合理完成的。