0

mappingレコードを格納する列を持つテーブルがあります:"IV=>0J,IV=>0Q,IV=>2,V=>0H,V=>0K,VI=>0R,VI=>1,"

部分文字列が列マッピングに含まれているかどうかを確認する SQL は何ですか。だから、私はこれが欲しい:

  • 文字列「マッピング」で正確で"IV=>0J"あるため、trueを返す場合IV=>0J
  • 私が持っている場合は"IV=>01"falseを返します。等々...

私はこれを試します:

SELECT * FROM table WHERE charindex('IV=>0J',mapping)

しかし、私が持っているときは"IV=>0"、TRUE を返します。ただし、FALSE を返す必要があります。

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

4

5 に答える 5

4

カンマを含めて検索できます。の最初と最後にも1つ追加してmappingください:

SELECT * FROM table WHERE charindex(',IV=>0J,',',' + mapping + ',') <> 0

また

SELECT * FROM table WHERE ',' + mapping + ',' LIKE '%,IV=>OJ,%'
于 2013-07-04T08:43:02.797 に答える
0

charindex はブール値ではなく、テキストの位置を返します。

テキストが存在するかどうかを確認するには、0 と比較します。

SELECT * FROM table WHERE charindex('IV=>0J',mapping) <> 0
于 2013-07-04T08:37:51.313 に答える
0

ここで何かが足りないと思います。Charindex関数は TRUE または FALSE を返しません。マスター文字列内の部分文字列の開始点を返すか、部分文字列が存在しない場合は -1 を返します。したがって、クエリは次のように読む必要があります。

SELECT * FROM table WHERE charindex('IV=>0J',mapping) > 0
于 2013-07-04T08:44:21.770 に答える