2017-11-03 16 views
1

Microsoft SQL Server 2014を使用しています。この文字列「New Idea [10%]」を検索しようとしました。残念ながら、[,%および]は特殊文字であり、クエリを混乱させます。私は他のオートメーション目的のために変数に文字列を配置する必要があります。Microsoft SQL Serverでエスケープ文字を使用してSQL varを作成する方法は?

は、私はすでに、私は以下試したいくつかの例を置く:

DECLARE @sourceLike NVARCHAR(MAX); 

--SET @sourceLike = '%New Idea ![10!%!]%' ESCAPE '!'; 
--SET @sourceLike = '%New Idea \[10\%\]%'; 
SET @sourceLike = 'New Idea [10%]'; 

--RoadmapCalculationResults----------------------------------------------------- 
SELECT LeverMaturity 
FROM RoadmapCalculationResults 
WHERE LeverMaturity LIKE @sourceLike 

私は私が持っている問題は、私はエスケープ文字と文字列のVARを作成することはできませんだと思います。

アドバイスはありますか?これはすべき

+1

LeverMaturity LIKE '%新しいアイデア[10%!!]%!' 'で何が悪いですESCAPE '!'; '? – Sami

+0

私が言ったように、私はvarを使用する必要があります。オートメーション/その他の目的のために。私は実際にあなたのような同様のコードで、varなしで働いていた。 –

+1

私の答えとデモを参照してください。 – Sami

答えて

2

は動作します:

CREATE TABLE T (STR VARCHAR(MAX)); 

DECLARE @sourceLike VARCHAR(50) = '%New Idea ![10!%!]%'; 

INSERT INTO T VALUES 
('C:\James\AAA(1) - C0001506 Mrs Michaela Hysell.pdf'), 
('C:\James\AAA(10) - C00 New Idea [10%] rdoza.pdf'), 
('C:\James\AAA(11) - C0001517 Mrs Melony Pickle.pdf'), 
('C:\James\AAA(12) - C0001518 Mr Homer Guillot.pdf'), 
('C:\James\AAA(13) - C0001519 Mrs Lawerence Matis.pdf'), 
('C:\James\AAA(14) - C0001520 Mrs Yahaira Hausner.pdf'); 

SELECT * 
FROM T 
WHERE STR LIKE @sourceLike ESCAPE '!' 

結果:

+-------------------------------------------------+ 
|      STR      | 
+-------------------------------------------------+ 
| C:\James\AAA(10) - C00 New Idea [10%] rdoza.pdf | 
+-------------------------------------------------+ 

Demo

+0

はい!できます!ありがとう。 –

+0

@SyaifulNizamYahya喜んで:) – Sami

関連する問題