在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
答案 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)