1

'Codes'列の1つが'|'で区切られた複数の文字値で構成されているSQLテーブルがあります。

(例:| 0000000171 | 0000001192 | 0000003498 | 0000003569 |)。

単一の値が列'Codes'に存在するかどうかを確認するためのクエリで、次を使用すると1つの行が正常に返されます。-

charindex('0000000171', Codes) > 0

質問:-「コード」列に複数の値が存在する場合、複数の値を検索する場合、SQLで正しいクエリは何でしょうか。

例:'Codes'列の3つの値0000000171、0000000172、0000000173の存在を検索する必要がある場合、次の構文はNothingを返します:-

charindex('0000000171,0000000172,0000000173', Codes) > 0

ご意見をお聞かせください ...

4

3 に答える 3

2

If you need to use a delimited list, then your charindex should include the delimited on each code, as in:

charindex('|'+'0000000171'+'|', Codes) > 0

or

charindex('|0000000171|', Codes) > 0

Whoever designed the "Codes" field seemed to have this in mind, since it begins and ends with a delimiter.

However, the right solution is to store the codes in a separate table.

于 2012-06-19T16:51:16.887 に答える
1

どうですか:

(charindex('0000000171', Codes) > 0
or
charindex('0000000172', Codes) > 0
or
charindex('0000000173', Codes) > 0)
于 2012-06-19T16:38:42.343 に答える
1

charindex3回使用できます

charindex('0000000171', Codes) > 0 or
charindex('0000000172', Codes) > 0 or
charindex('0000000173', Codes) > 0
于 2012-06-19T16:39:22.987 に答える