SQL存储过程来处理几个空参数?

时间:2010-09-24 15:28:41

标签: sql parameters

在SQL Server上我试图能够从包含四个参数的表中选择*记录,在某些情况下,传入的参数将是某个字符串值'Select',在这种情况下我想从中选择*指定的字段。

有谁知道处理这个问题的好方法?

(
 @mParameter varchar(50) = Null,
 @tParameter varchar(50) = Null,
 @gParameter int = Null,
 @nParameter varchar(255) = Null
)

as



Select
  *

From
  TableA

Where

If @mParameter = 'Select' then
  M = @mParameter


If @tParameter = 'Select' then
AND
  T = @tParameter

If @gParameter = 'Select'then
AND
  G = @gParameter

If @nParameter = 'Select' then
AND
  N = @nParameter

2 个答案:

答案 0 :(得分:2)

更新2

试试这个:

Select *
From TableA
Where
M = isnull(@mParameter, M)
and T = isnull(@tParameter, T)
and G = isnull(@gParameter, G)
and N = isnull(@nParameter, N)

答案 1 :(得分:2)

SELECT *
FROM YourTable
WHERE (@mParameter = 'M' OR @mParameter IS NULL)
AND (@tParameter = 'T' OR @tParameter IS NULL)
AND (@gParameter = 123 OR @gParameter IS NULL)
AND (@nParameter = 'N' OR @nParameter IS NULL)