我有一个HTML表单,其中包含许多输入字段,例如地址,邮政编码,日期,数据和抱怨类型(作为下拉列表),并且这些字段都不是必需的HTML字段,这取决于用户必须提取哪些数据(如果有的话)的字段未填充,我应该忽略该字段,并应基于填充的输入获取数据。如何编写SQL命令where子句?我写了类似
select *
from table
where (isnull(address, 0) like 'address')
and (isnull(fromDate, 0) > somedate)
and (isnull(zip, 0) like 'zip')
and (isNull(toDate, 0) < somedate)
我正在SQL命令中的C#Web方法中使用它。请帮我。我不确定存储过程有什么主意
答案 0 :(得分:0)
您可以通过多种方式实现它。请参见下面的示例示例:
DECLARE @Customer AS TABLE ([Address] VARCHAR(100),FromDate Date, Zip INT, ToDate Date)
INSERT INTO @Customer
SELECT 'Address1', GETDATE(),68110, DATEADD(DAY,5,GETDATE())
UNION ALL
SELECT 'Address2', GETDATE(),1234, DATEADD(DAY,5,GETDATE())
UNION ALL
SELECT 'Address3', GETDATE(), NULL , DATEADD(DAY,5,GETDATE())
UNION ALL
SELECT 'Address4', NULL,68110, DATEADD(DAY,5,GETDATE())
select
*
from @Customer C
Where
C.[Address] = Coalesce(null, [Address])
AND C.zip = Coalesce(68110, Zip)
此blogpost说明了实现它的其他各种方式。