0

我的代码是这样的..

SELECT ALL TBL_MONITOR.ITEM_ID, TBL_MONITOR.CATEGORY, 
TBL_MONITOR.BRANDNAME, TBL_MONITOR.PRICE, TBL_MONITOR.QUANTITY
FROM TBL_MONITOR
where 
case when :pricetag = 'Great' then tbl_monitor.price >= :para_price end,
case when :pricetag = 'Less' then tbl_monitor.price >= :para_price end

这部分不起作用,它说..缺少关键字 ==> >= :para_price end

==> >= :para_price end,

我想做的是如果用户输入“更大”,报告将显示价格高于“:para_price”我将如何解决这个问题?提前非常感谢:)

4

4 回答 4

4

试试这个

WHERE 
(:pricetag = 'Great' AND tbl_monitor.price >= :para_price)
OR
(:pricetag = 'Less' AND tbl_monitor.price <= :para_price)
于 2011-08-05T09:39:35.897 回答
3

SQLCASE语句(除了您正在制作的语法错误)不是 C 或 PHP 中的流控制指令。它是一个返回值的表达式,而不是决定将执行代码的哪一部分的方法。

你不想说出你想要完成什么或者它是如何失败的,但看起来你想要一个简单的表达式:

WHERE (:pricetag = 'Great' AND tbl_monitor.price >= :para_price)
OR (:pricetag = 'Less' AND tbl_monitor.price <= :para_price)
于 2011-08-05T09:39:47.690 回答
1

试试这样:

SELECT ALL TBL_MONITOR.ITEM_ID, 
      TBL_MONITOR.CATEGORY, 
      TBL_MONITOR.BRANDNAME, 
      TBL_MONITOR.PRICE, 
      TBL_MONITOR.QUANTITY
FROM TBL_MONITOR
WHERE (:pricetag = 'Great' AND tbl_monitor.price >= :para_price)
OR (:pricetag = 'Less' AND tbl_monitor.price <= :para_price)
于 2011-08-05T09:36:52.227 回答
0
SELECT ALL TBL_MONITOR.ITEM_ID, TBL_MONITOR.CATEGORY, 
TBL_MONITOR.BRANDNAME, TBL_MONITOR.PRICE, TBL_MONITOR.QUANTITY
FROM TBL_MONITOR
where 
1 = CASE 
      WHEN :pricetag = 'Great' 
      AND  tbl_monitor.price >= :para_price
      THEN  1
      WHEN :pricetag = 'Less' 
      AND  tbl_monitor.price <= :para_price
      THEN 1
      ELSE 0
    END
于 2011-08-05T10:07:14.243 回答