簡體   English   中英

TSQL RegEx 類似運算符

[英]TSQL RegEx Like operator

我需要在 varchar(max) 字段中搜索特定的字符串模式。 模式是aa-aaa-0000000000-0 ,其中a可以是任何字符 AZ,0 可以是任何數字 0-9。破折號是模式的一部分。

到目前為止,我已經嘗試了很多東西,但我無法完全理解。 我目前正在這樣做,但它沒有返回任何結果。

select * 
from MyTable 
where Field 
    like '%[A-Z][A-Z][-][A-Z][A-Z][A-Z][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][-][0-9]%'
DECLARE @T AS TABLE (Val VARCHAR(max))
INSERT @T (
                Val
            )
VALUES ( 'aa-aaa-0000000000-0' )

select  * 
from    @T AS T 
where   T.Val like '[A-Z][A-Z][-][A-Z][A-Z][A-Z][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][-][0-9]'

只需添加另一個 [0-9] 即可獲得 10 位數字

您需要修復您的模式:

  • [AZ] [aZ] (當然要看Field列的排序規則)
  • 添加一個額外的通配符[0-9]以匹配示例中的所有 10 個字符。

T-SQl:

SELECT * 
FROM (VALUES ('aa-aaa-0000000000-0')) v (Field)
WHERE Field LIKE '%[a-Z][a-Z][-][a-Z][a-Z][a-Z][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][-][0-9]%'

你只是在尋找

WHERE Column LIKE '%[a-z][a-z]-[a-z][a-z][a-z]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9]%'

暫無
暫無

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

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