我可以用这种方式使用MySql CASE吗?

时间:2011-12-06 16:32:45

标签: mysql case

还有更多代码,但我正在努力遵守我的工作规则。

我正在尝试使用这样的CASE语句:

    INSERT INTO PRODUCTS
    SELECT DISTINCT IM.EDPNO
  , IM.ITEMNO
  , IM.DESCRIPTION
  , SUBSTRING(EX.REFITEMNO,6,20) AS UPC_CODE
  , IM.VENDORNO
  , CONCAT(VAR_STORE_URL,VAR_DETAIL_URL,RTRIM(IM.ITEMNO))  AS URL

  SELECT CASE DIVISION WHEN 'C4' OR 'J3' THEN
    ,CONCAT(VAR_STORE_URL,VAR_IMAGE_URL,IM.EDPNO,'.jpg')
  End AS IMAGE_URL;

然后我想我会用另一个Select Case来跟进它,在那里我会从Lookup表中获取图像而不是concating。

2 个答案:

答案 0 :(得分:1)

  , CONCAT(VAR_STORE_URL,VAR_DETAIL_URL,RTRIM(IM.ITEMNO))  AS URL
 SELECT CASE DIVISION WHEN 'C4' OR 'J3' THEN
    ,CONCAT(VAR_STORE_URL,VAR_IMAGE_URL,IM.EDPNO,'.jpg')
  End AS IMAGE_URL

需要

  , CONCAT(VAR_STORE_URL,VAR_DETAIL_URL,RTRIM(IM.ITEMNO))  AS URL
, CASE WHEN DIVISION IN ('C4', 'J3') THEN 
 CONCAT(VAR_STORE_URL,VAR_IMAGE_URL,IM.EDPNO,'.jpg') END AS IMAGE_URL

您在URL之后缺少逗号,不应该使用SELECT语句中的前导SELECT,而您不能拥有OR使用CASE表达式的简单形式时。

答案 1 :(得分:0)

我认为这有效:

SELECT CASE DIVISION WHEN 'C4' OR 'J3' THEN
    CONCAT(VAR_STORE_URL,VAR_IMAGE_URL,IM.EDPNO,'.jpg')
  End AS IMAGE_URL