将适当大小写函数应用于列中的子字符串

时间:2018-07-19 15:56:20

标签: sql-server tsql

我们的SQL Server 2014系统具有适当的大小写功能,效果很好。我正在尝试将其应用于包含出生城市,州和国家的列的子字符串。

例如

birthplace
LOS ANGELES, CA US
DALLAS, TX US
GRAND RAPIDS, MI US

希望它成为

birthplace
Los Angeles, CA US
Dallas, TX US
Grand Rapids, MI US

如果我应用当前显示的正则函数

birthplace
Los Angeles, Ca Us
Dallas, Tx Us
Grand Rapids, Mi Us

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

嗯。 。 。假设所有出生地都有逗号,并且您想propercase()直到第一个逗号:

select (dbo.propercase(left(birthplace, charindex(',', birthplace))) +
        substring(birthplace, charindex(',', birthplace) + 1)
       )

我将注意到该方法不能解决拼写错误,因此不会将“ Grand Rapids”更改为“ Grand Rapids”。 ;)

答案 1 :(得分:0)

这是我最终想到的,它的工作原理与我想要的完全一样:

    SELECT birthplace, dbo.qProperCase(LEFT(birthplace, CHARINDEX(',',birthplace))) +
    SUBSTRING(birthplace,CHARINDEX(',',birthplace)+1,LEN(birthplace))