以下は動作しませんが、このようなものが私が探しているものです。
select *
from Products
where Description like (@SearchedDescription + %)
SSRSは、パラメーターの前にある@演算子を使用して「in」をシミュレートしますが、文字列を文字列のリストに一致させる方法が見つかりません。
以下は動作しませんが、このようなものが私が探しているものです。
select *
from Products
where Description like (@SearchedDescription + %)
SSRSは、パラメーターの前にある@演算子を使用して「in」をシミュレートしますが、文字列を文字列のリストに一致させる方法が見つかりません。
パラメータで LIKE 演算子を使用する方法には、いくつかのオプションがあります。
オプション1
パラメータ値に % を追加すると、LIKE フィルタの処理方法をカスタマイズできます。たとえば、クエリは次のようになります。
SELECT name
FROM master.dbo.sysobjects
WHERE name LIKE @ReportParameter1
データ セットで LIKE ステートメントを適切に使用するには、sysa% などのパラメーター値を使用できます。このコードを使用して SSRS 2008 でサンプル レポートをテストしたところ、次の 4 つのテーブルが返されました。
sysallocunits
sysaudacts
sysasymkeys
sysaltfiles
オプション 2
ユーザーが「%」記号を追加する必要のないこれを行う別の方法は、コードを持つ変数を生成し、変数を実行することです。
DECLARE @DynamicSQL NVARCHAR(MAX)
SET @DynamicSQL =
'SELECT name, id, xtype
FROM dbo.sysobjects
WHERE name LIKE ''' + @ReportParameter1 + '%''
'
EXEC (@DynamicSQL)
これにより、LIKE ステートメントの使用方法を細かく制御できます。ユーザーに追加の演算子を挿入させたくない場合は、最終的なクエリにマージする前に、英数字以外の文字を取り除くコードをいつでも追加できます。
オプション 3
この機能を制御するストアド プロシージャを作成できます。私は通常、SSRS のデータ ソースとしてストアド プロシージャを使用することを好み、動的に生成された SQL を決して許可しませんが、それは単なる私の好みです。これにより、依存関係分析チェックを実行する際の発見可能性が向上し、最適なクエリ パフォーマンスを確保することもできます。
オプション 4
SQL コードを動的に生成するのに役立つ .NET コード アセンブリを作成します。これはやり過ぎで、せいぜい悪い選択だと思いますが、うまくいく可能性があります。
あなたはやろうとしましたか:
select * from Products where Description like (@SearchedDescription + '%')
(% 記号を一重引用符で囲みますか?)
このように置きます:
select *
from tsStudent
where studentName like @SName+'%'
田野さん、どのバージョンの SSRS を使用していますか? RS2000だとマルチパラメータリストは公式にサポートされていませんが、回避策があります....