在 sql 中使用 And,Or 获得多个结果
Using And,Or in a sql for multiple results
我有一个文本框和 3 个下拉框,每个下拉框都有一个可以 select 编辑的项目。我希望能够实现两种过滤方案。
在文本框中键入一个值并在接下来的两个文本框中输入 select 个值后得到过滤结果,而忽略最后一个。
在文本框中输入值并在其他三个下拉框中输入 select 值后进行筛选以筛选出结果。如果我将 "and" 更改为 "or" 并将 "or"s 更改为 "and"s,我下面的代码一次只能生成一个结果。任何人都可以帮助修改或新查询以实现这两种情况吗?
CREATE PROC Spsearchproduct @searchWord1OnMasterPage NVARCHAR (50),
@searchWord2OnMasterPage NVARCHAR (50),
@searchWord3OnMasterPage NVARCHAR (50),
@searchWord4OnMasterPage NVARCHAR (50)
AS
BEGIN
SELECT product.NAME,
price,
seller,
productstreetno.strno,
productstreet.streetname
FROM product
INNER JOIN productstreetno
ON product.streetnoid = productstreetno.idstreetno
INNER JOIN productstreet
ON product.streetid = productstreet.idstreet
INNER JOIN productstate
ON stateid = productstate.idstate
INNER JOIN productcity
ON cityid = productcity.idcity
WHERE product.NAME LIKE '%' + @searchWord1OnMasterPage + '%'
AND productstate.statename LIKE '%' + @searchWord2OnMasterPage + '%'
AND ( ( productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%' )
OR ( productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%' )
OR ( productstreet.streetname IS NULL ) )
AND ( ( productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%' )
OR ( productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%' )
OR ( productstreet.streetname IS NULL ) )
END
Product.Name Like '%' + @searchWord1OnMasterPage + '%' and
ProductState.StateName Like '%' + @searchWord2OnMasterPage + '%' and
(ProductCity.CityName Like '%' + @searchWord3OnMasterPage + '%' )and
((ProductStreet.StreetName Like '%' + @searchWord4OnMasterPage + '%') or
(@searchWord4OnMasterPage = 'Select Street'))
我有一个文本框和 3 个下拉框,每个下拉框都有一个可以 select 编辑的项目。我希望能够实现两种过滤方案。
在文本框中键入一个值并在接下来的两个文本框中输入 select 个值后得到过滤结果,而忽略最后一个。
在文本框中输入值并在其他三个下拉框中输入 select 值后进行筛选以筛选出结果。如果我将 "and" 更改为 "or" 并将 "or"s 更改为 "and"s,我下面的代码一次只能生成一个结果。任何人都可以帮助修改或新查询以实现这两种情况吗?
CREATE PROC Spsearchproduct @searchWord1OnMasterPage NVARCHAR (50),
@searchWord2OnMasterPage NVARCHAR (50),
@searchWord3OnMasterPage NVARCHAR (50),
@searchWord4OnMasterPage NVARCHAR (50)
AS
BEGIN
SELECT product.NAME,
price,
seller,
productstreetno.strno,
productstreet.streetname
FROM product
INNER JOIN productstreetno
ON product.streetnoid = productstreetno.idstreetno
INNER JOIN productstreet
ON product.streetid = productstreet.idstreet
INNER JOIN productstate
ON stateid = productstate.idstate
INNER JOIN productcity
ON cityid = productcity.idcity
WHERE product.NAME LIKE '%' + @searchWord1OnMasterPage + '%'
AND productstate.statename LIKE '%' + @searchWord2OnMasterPage + '%'
AND ( ( productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%' )
OR ( productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%' )
OR ( productstreet.streetname IS NULL ) )
AND ( ( productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%' )
OR ( productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%' )
OR ( productstreet.streetname IS NULL ) )
END
Product.Name Like '%' + @searchWord1OnMasterPage + '%' and
ProductState.StateName Like '%' + @searchWord2OnMasterPage + '%' and
(ProductCity.CityName Like '%' + @searchWord3OnMasterPage + '%' )and
((ProductStreet.StreetName Like '%' + @searchWord4OnMasterPage + '%') or
(@searchWord4OnMasterPage = 'Select Street'))