2017-08-17 15 views
2

文字列の6番目と7番目の文字が '73'に等しくなければならない状況があります。私はLIKE '%73%'を使用しようとしましたが、SQL Serverは文字列に含まれる可能性のある他の73文字にヒットすることがあります。文字列の6番目と7番目の文字だけを検索する方法はありますか?T-SQL - 文字列のn番目の文字を検索する方法

ありがとうございました!

答えて

6

使用SUBSTRING(表現、開始、長さ)

SELECT mycolumn 
FROM mytable 
WHERE SUBSTRING (mycolumn ,6 , 2) = '73' 
2

文字列 '73' の位置6

+2

これを使用すると、パフォーマンスペナルティが発生する可能性があります。そのインデックスを取得するには、MyStringをスキャンして '73'を表示する必要があります。 SUBSTRINGのほうが良いでしょう。そして、時には別の73がポジション6の前にあるレコードを見逃すことになります。 –

+0

@MarekVitekそれは本当です、私は後者を考えませんでした... – JohnHC

+0

@MarekVitek:パフォーマンスのペナルティは部分文字列の解決と同じです – TheGameiswar

3

使用SUBSTRINGで始まる。これは、見つかっ

select * 
from MyTable 
where CHARINDEX('73', MyString) = 6 

SQL Serverのためにこれを試してみてください。

SELECT SUBSTRING(YourColumn,6,2) Result 
FROM dbo.YourTable; 
あなたはフィルタとして使用することができます

likeを使用して
SELECT * 
FROM dbo.YourTable 
WHERE SUBSTRING(YourColumn,6,2) = '73'; 
5

は、あなたが行うことができます:もちろん

where col like '_____73%' 

を、substring()を示唆し、他のソリューションも非常に賢明です。

関連する問題