加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.52kongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sql server 将propercase函数应用于列中的子字符串

发布时间:2022-10-23 23:01:22 所属栏目:MsSql教程 来源:互联网
导读: Sql server 将propercase函数应用于列中的子字符串
sql-servertsql
Sql server 将propercase函数应用于列中的子字符串,sql-server,tsql,Sql Server,Tsql,我们的SQL Server 2014系统有一个适

Sql server 将propercase函数应用于列中的子字符串

sql-servertsql

Sql server 将propercase函数应用于列中的子字符串,sql-server,tsql,Sql Server,Tsql,我们的SQL Server 2014系统有一个适当的函数,非常有效。我试图将其应用到包含出生城市、州和国家的列的子字符串中比如说birthplaceLOS ANGELES, CA USDALLAS, TX USGRAND RAPIDS, MI US我希望是birthplaceLos Angeles, CA USDallas, TX USGrand Rapids, MI US如果应用当前显示的propercase函数birthplaceLos Angeles, Ca

我们的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

如果应用当前显示的propercase函数

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

任何帮助都将不胜感激。

嗯。假设所有出生地都有一个逗号,并且您希望

propercase()

直到第一个逗号:

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

我要注意的是,这种方法不会修复拼写错误,所以它不会将“Grand Rapids”更改为“Grand Rapids”。)

这就是我最后想到的,它完全按照我想要的那样工作:

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

编辑问题添加一些示例数据&期望的结果会有帮助。没有SQL Server 2015版本-有2012、2014、2016,现在是2017-那么您实际上指的是哪一个?抱歉,我在添加示例数据之前无意中发布了它。现在已经修好了。谢谢你的帮助。它为我指明了正确的方向。我将发布我最终使用的内容@戈登·林诺夫的答案似乎更准确。如果数据中有额外的逗号Mssq字符串函数,您的解决方案可能会导致第一个和最后一个逗号之间的数据丢失。

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!