ここには3つのフィールドを持つサンプルテーブルがあります。WHERE句にsubstrを指定したSELECT文
TableA
FieldA FieldB FieldC
======================================
123XYZ456 XYZ John
124NNN333 NNN Jenny
232XPT124 XPT Jade
456XXX345 XXX James
FieldA
は、私は、このテーブルを設計していなかったし、いくつかのアプリケーションはすでにそれを使用している9の固定長を持っています。
FieldB
とFieldC
をFieldA
との条件で選択します。私は私の望ましい結果を達成することはできません
SELECT FieldB,
FieldC
FROM TableA
WHERE FieldA LIKE Concat(@paramA, '%', @paramB)
:このSQL文を使用して
。明らかにそれは12%
と一致し、それは私が欲しいものではありませんので、
FieldA FieldB FieldC
======================================
123XXX456 XXX John
124XXX333 XXX Jenny
:私は12
のparamA値と''
のparamB値を検索しようとすると、私は2
結果を得ます。 paramsが文字列の正しいインデックスと一致する必要があります。
私がparamA = '12'
とparamB = ''
を検索した場合、結果は得られません。フィールド(FieldB
、FieldC
)を取得するには、paramA = '123'
とparamB = '456'
という正しい値が必要です。したがって、XYZ
とJohn
が返されます。私がJames
を返そうとすると、私は与えなければならないparamA = '456'
とparamB = '345'
私はこれに対して正しいSQLステートメントを作成することができますか?何か案が?ありがとう。
ウルは、基本的には右の最初の3と最後の3文字アプト懸念しますか? – Teja
まさに!それが私が望んだことです。 –