我有一个带有select语句的存储过程,并且我试图添加一个case语句,如果类型是列[si.TYPE]是NEW,那么它将根据MSRP在两个值之间的情况进行筛选,如果列[si.TYPE]是USED,它将根据SELLINGPRICE在两个值之间的情况进行筛选。
在第一个BETWEEN上显示了错误:
不正确的语法
代码:
SELECT ....
FROM ....
WHERE.....
AND CASE si.[type]
WHEN 'new' THEN si.[msrp] BETWEEN @priceMin AND @priceMax
WHEN 'used' THEN si.[sellingprice] BETWEEN @priceMin AND @priceMax
END;我需要做两个单独的选择,然后UNION的结果来实现这一点吗?它在MySQL中工作,只需要在Server中找到解决方案
发布于 2014-03-30 00:10:34
在Server中,有布尔表达式,也有非布尔表达式.语法决定它是哪种类型,在需要非布尔表达式的地方不能使用布尔表达式。MySQL允许它们更自由地混合。您将不得不重做语法;一种可能的方法是
SELECT ....
FROM ....
WHERE.....
AND (si.[type] = 'new' AND si.[msrp] BETWEEN @priceMin and @priceMax
OR si.[type] = 'used' AND si.[sellingprice] BETWEEN @priceMin and @priceMax)https://stackoverflow.com/questions/22738573
复制相似问题