2017-02-26 45 views

回答

0

您可以在REPLACE字符串中使用空字符串的連字符,並計算原始字符串和替換字符串的長度的差值以檢查連字符的數量。

select * 
from yourtable 
where len(column_name)-len(replace(column_name,'-',''))=3 
and substring(column_name,9,1) not like '%[0-9]%' 
+0

完美 - 感謝。正是我需要的。 –

+0

還有一種有效的方法來過濾上述語句,其中值爲非數字的第9個字符(包括破折號) –

+0

請參閱編輯的答案。 –

0

如果您的記錄有2個或3個連字符,然後就去做:

where col like '%-%-%-%' 

這將讓3個以上的連字符。整整3:

where col like '%-%-%-%' and col not like '%-%-%-%-%' 
0

試試這個,

declare @t table(col1 varchar(50)) 
insert into @t values ('A-B'),('A-B-C-D-E'),('A-B-C-D') 
select * from 
(SELECT * 
,(len(col1) - len(replace(col1, '-', '')) 
/len('-')) col2 
FROM @T)t4 
where col2=3