簡體   English   中英

如何從字符串sql中字符的最后一次出現獲取索引?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM