1

詳細フィールド値に関するSQLレポートを作成しようとしているデータベース(変更)があります。問題は、詳細値に「フレーズ」が表示され、このフレーズまたはその一部に基づいて評価する必要があることです。

SQL

SELECT *
FROM change
WHERE change.detail LIKE '%To: [Step Two]%'

詳細に「To: [1.Step Two]」が含まれているすべての値を表示したいのですが、結果は一貫して何も返されません。これにはテーブル値があります。詳細フィールドの完全な値の例を次に示します。「[Step] Changed From: [1. Step One] To: [1. Step Two]」 [] 内の項目は、データベース内の他の値も表します。

4

3 に答える 3

2

これが Microsoft SQL Server の場合、括弧をエスケープできます。

SELECT *
FROM change
WHERE change.detail LIKE '%To: \[Step Two\]%' ESCAPE '\'

括弧を使用LIKEした句は文字範囲を表します。そのため、[Step Two]その後の文字To:は S、t、E、p、w、または o のいずれかに一致します。

これについてはMSDNで読むことができます。

于 2013-09-06T20:00:01.240 に答える
0

SQL Server/TSQL を使用していると仮定すると、問題は角括弧文字に特別な意味があることです。

[ ] 指定範囲 ([af]) またはセット ([abcdef]) 内の任意の 1 文字。

WHERE au_lname LIKE '[CP]arsen' は、arsen で終わり、C と P の間の任意の 1 文字で始まる著者の姓 (Carsen、Larsen、Karsen など) を検索します。範囲検索では、照合順序のソート規則によって、範囲に含まれる文字が異なる場合があります。

角かっこ文字を文字通り一致させるには、エスケープする必要があります。

LIKE '%To: \[Step Two\]%' ESCAPE '\'
于 2013-09-06T20:06:22.977 に答える