重新创建 InitCap 或 Proper 函数,但有一些限制

问题描述 投票:0回答:1

首先我根据

@@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

但是系统限制如下:

  • 我使用的是 SQL Server 2012,因此无法使用
    String_Split
    等较新的功能。
  • 非常受限的环境不允许我使用CREATE函数,所以没有函数、过程等

它需要这些功能:

  • 正确地将字符串字段中每个单词的每个第一个字母大写,同时将其余字母更改为小写,因为很可能整个字符串都是大写的。以数字开头的单词(即 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),因此我无法使用也建议的较新关键字。

sql-server sql-server-2012 proper
1个回答
0
投票

这可以实现吗?

在这些限制下,这是无法合理完成的。

© www.soinside.com 2019 - 2024. All rights reserved.