文字列の6番目と7番目の文字が '73'に等しくなければならない状況があります。私はLIKE '%73%'
を使用しようとしましたが、SQL Serverは文字列に含まれる可能性のある他の73文字にヒットすることがあります。文字列の6番目と7番目の文字だけを検索する方法はありますか?T-SQL - 文字列のn番目の文字を検索する方法
ありがとうございました!
文字列の6番目と7番目の文字が '73'に等しくなければならない状況があります。私はLIKE '%73%'
を使用しようとしましたが、SQL Serverは文字列に含まれる可能性のある他の73文字にヒットすることがあります。文字列の6番目と7番目の文字だけを検索する方法はありますか?T-SQL - 文字列のn番目の文字を検索する方法
ありがとうございました!
使用SUBSTRING(表現、開始、長さ)
SELECT mycolumn
FROM mytable
WHERE SUBSTRING (mycolumn ,6 , 2) = '73'
文字列 '73' の位置6
使用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';
は、あなたが行うことができます:もちろん
where col like '_____73%'
を、substring()
を示唆し、他のソリューションも非常に賢明です。
これを使用すると、パフォーマンスペナルティが発生する可能性があります。そのインデックスを取得するには、MyStringをスキャンして '73'を表示する必要があります。 SUBSTRINGのほうが良いでしょう。そして、時には別の73がポジション6の前にあるレコードを見逃すことになります。 –
@MarekVitekそれは本当です、私は後者を考えませんでした... – JohnHC
@MarekVitek:パフォーマンスのペナルティは部分文字列の解決と同じです – TheGameiswar