嗨我想制定一個查詢,將允許我從3個超級單一列中查找所有記錄。記錄的例子就像XXXX-RP-XXXAS1-P。SQL字符串 - 通過Hypen過濾(x號碼)
我需要能夠排序通過1000或2或3超級記錄。
嗨我想制定一個查詢,將允許我從3個超級單一列中查找所有記錄。記錄的例子就像XXXX-RP-XXXAS1-P。SQL字符串 - 通過Hypen過濾(x號碼)
我需要能夠排序通過1000或2或3超級記錄。
您可以在REPLACE
字符串中使用空字符串的連字符,並計算原始字符串和替換字符串的長度的差值以檢查連字符的數量。
select *
from yourtable
where len(column_name)-len(replace(column_name,'-',''))=3
and substring(column_name,9,1) not like '%[0-9]%'
完美 - 感謝。正是我需要的。 –
還有一種有效的方法來過濾上述語句,其中值爲非數字的第9個字符(包括破折號) –
請參閱編輯的答案。 –
如果您的記錄有2個或3個連字符,然後就去做:
where col like '%-%-%-%'
這將讓3個以上的連字符。整整3:
where col like '%-%-%-%' and col not like '%-%-%-%-%'
試試這個,
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
這是SQL Server 2008 –