2016-07-15 5 views
0

私はSQLクエリで%を使用することを許可しないツール9を使用していますが、LIKEコマンドで%を使用せずに文字列に一致するかどうかを知りたいと思います。SQLでのLIKEの置換

または他のコマンドで文字列を一致させることができますが、唯一のことはクエリのどこでも%を使用できないことです。

たとえば、私は私と以下のコマンドを持っています。

CASE WHEN l.something LIKE '%this.needs.tomacth%' THEN 'thisone' 

これらのワイルドカードのために、自動化ツールで使用するとエラーが発生します。

+0

?利用可能なものはそれらの間で大きく異なります。したがって、あなたが何を具体的に使用しているかを知る必要があります。あなたが使用している**特定の** DBMS用のタグ(同様のものに限らない)を[編集]し、追加してください。 –

+0

MySQLを使用している場合は、['REGEXP'](https://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp) – imtheman

+0

を実行してみてください。 Automate 9を介してクエリを実行し、どのDBMS Automate 9に接続しましたか? –

答えて

0

%記号を2回入力することで、パーセント記号をエスケープすることができます。だから、これは動作するはずです:

CASE WHEN l.something LIKE '%%this.needs.tomacth%%' THEN 'thisone' 
+0

Caiusさん、ありがとうございました。 – thisisj

+0

Caiusさん、ありがとうございました。 自動化のために2つのクエリを追加してもらえますか? 1.現在の日付[Myexcel_2016/07/15]のExcelシートの名前を変更するにはどうすればよいですか?クエリ出力を保存しています。タスクは毎日実行されるので、毎回Excel名を更新したい名前に現在の日付が反映されるようにクエリが実行されます。 2.これは私が作業している別の自動化です。 これはLinux 9にインストールされているORACLEデータベースでSQLスクリプトを実行するためにautomate 9で可能ですか? – thisisj

0

のMicrosoft SQL Serverの機能を持っているCHARINDEX()

CASE WHEN CHARINDEX('this.needs.tomacth', l.something) THEN 'thisone' 

のMySQL、Oracle、およびSQLiteの機能INSTR() MySQL INSTR()を持って、 Oracle INSTR()SQLite INSTR()

CASE WHEN INSTR(l.something, 'this.needs.tomacth') THEN 'thisone' 

PostgreSQLとIBM DB2には機能POSITION() PostgreSQL POSITION()、 使用しているどのようなDBMS IBM DB2 POSITION()

CASE WHEN POSITION('this.needs.tomacth' IN l.something) THEN 'thisone'