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