簡體   English   中英

SQL / REGEX模式匹配

[英]SQL / REGEX pattern matching

我想通過sql使用正則表達式來查詢一些數據以返回值。 以下返回的唯一有效值將是“ GB”和“ LDN”,或者也可以是“ GB-LDN”

G-GB-LDN-TT-TEST
G-GB-LDNN-TT-TEST
G-GBS-LDN-TT-TEST

在寫入時,第一個GB集需要特定地包含2個字符,而LDN需要特定地具有3個字符。 兩組/組均以-符號分隔。 我有點需要提取數據,但同時確保它在該模式之內。 我看了一下正則表達式,但看不到該怎么做,就像子字符串一樣,但我看不到它。

如果我正確理解,您仍然可以使用substring()函數提取由-分隔的字符串部分。

select left(parsename(a.string, 3), 2)  +'-'+ left(parsename(a.string, 2) ,3)  from
    (
        select replace(substring(data, 1, len(data)-charindex('-', reverse(data))), '-', '.') [string] from <table>
    ) a

如上所述,您還可以定義提取的字符串的長度。

結果:

GB-LDN
GB-LDN
GB-LDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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