![](/img/trans.png)
[英]SQL Server : how do I read the last character of a string, and add a new character
[英]How do I get the index from the last occurence of a character in a string sql?
我正在使用以下内容在数据库中查找城市州。
SELECT SUBSTRING(Location, PATINDEX( '%(%' , Location), LEN(Location))
FROM myTable
这使我得到以下类型的结果。
(San Jose, CA)
(Los Angeles, CO)
(A Place)(Miami, FL)
...
在第3个示例的情况下,我想忽略第一组异议。
我尝试使用REVERSE(),但是没有运气,也许我使用不正确,或者这不是我的解决方案。 有人可以帮忙吗? 谢谢!
您可以;
;with T(f) as (
select '' union
select 'xxx' union
select 'xxx (yyy)' union
select 'xxx (yyy) (zzz)'
)
select
right(f, patindex('%(%', reverse(f) + '('))
from T
>>
(No column name)
xxx
(yyy)
(zzz)
删除+'('即可获得空白。
看一下SQL Server的字符串操作函数 。 特别是在CHARINDEX上 。 这应该是您要寻找的。
但是,作为对此类问题的长期补救措施,建议使用架构重构。 将复杂的数据存储为字符串并在以后进行字符串操作通常比以易于查询分析的形式存储数据效率低。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.