首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖于列的where子句中的Server语句

问依赖于列的where子句中的Server语句
EN

Stack Overflow用户
提问于 2014-03-30 00:06:23
回答 1查看 550关注 0票数 0

我有一个带有select语句的存储过程,并且我试图添加一个case语句,如果类型是列[si.TYPE]是NEW,那么它将根据MSRP在两个值之间的情况进行筛选,如果列[si.TYPE]是USED,它将根据SELLINGPRICE在两个值之间的情况进行筛选。

在第一个BETWEEN上显示了错误:

不正确的语法

代码:

代码语言:javascript
复制
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中找到解决方案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-30 00:10:34

在Server中,有布尔表达式,也有非布尔表达式.语法决定它是哪种类型,在需要非布尔表达式的地方不能使用布尔表达式。MySQL允许它们更自由地混合。您将不得不重做语法;一种可能的方法是

代码语言:javascript
复制
 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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22738573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档