2017-07-28 13 views
0

パラメータに基づいて選択を使用することができます方法:私は、パラメータをチェックし実行する必要がありSQL - 私はこのようなwhere句使用して、私はSQL Serverのストアドプロシージャ内のSQL文を持っている

Select (fields) 
From Table 
Where Testname like @SearchLetter + '%' 

@SearchLetter "#"の場合は、フィールドに数字フィールド(0-9)で始まるレコードを選択する必要があります。

私はいくつかのことを試しました(ifs/chooseなど)。私は必要なものを手に入れているようだ。

誰も私がこれを行う方法を知っていますか?

+0

を試してみてください。.. –

答えて

1

サンプルデータと予想される結果を追加

where Testname like case @SearchLetter 
    when '#' then '[0-9]' + '%' 
    else @Searchletter + '%' end 
0

最も簡単な方法は、あなたがそうでなければ使用して文字列は常に(あなたは常にハッシュが落ちる場所にこの置換が発生することをまたは)1つの文字であると仮定すると

Where Testname like REPLACE(@SearchLetter, '#', '[0-9]') + '%' 

を使用することができます

where left(@SearchLetter, 1) between '0' and '9 
+0

これは、変数の最初の文字をテストしています。彼らは変数値の条件付き列の最初の文字をテストしたい。 –

1

です正確な等価性を確認するステートメントはCASEです。

Where Testname like 
CASE WHEN @SearchLetter = '#' 
    THEN '[0-9]' 
    ELSE @SearchLetter 
END + '%' 
関連する問題