1

在以下情况下,我如何才能concat收到fixed string文本dynamically generated?对于这个例子,我保持简单,但实际情况很多。因此,我不想把concat它放在所有地方,而是将它发送到输出。

BEGIN
    DECLARE aId INT;
    DECLARE aType INT;
    DECLARE aParent INT;
    DECLARE aUserName VARCHAR(32);
    DECLARE aUserId INT;
    DECLARE aCountry VARCHAR(2);
    DECLARE aOutput VARCHAR(1500); 

    SELECT id, type, parent INTO aId, aType, aParent FROM products  WHERE id = mElmId;

    SET aOutput = CASE atype
        WHEN 1 THEN 'Something'
        WHEN 2 THEN 'Something'
        WHEN 3 THEN  'Something'
        WHEN 10 THEN  
            CASE mStatus
                WHEN '14' THEN 'Place Order Link'
                WHEN '01' THEN 'Cancel Order Link'
                WHEN '11' THEN 'Order Cancelled - Place order link'
                WHEN '00' THEN 'Order - Under Process'#No link here
                WHEN '10' THEN 'Cancel - Under Process' #No link here
                ELSE 'Detect Status Error'
            END
            //I need to concat 'Home ~ More' to the above text, but don't want to add it next to the text above.
            //So it ends up like 'Place Order Link ~ Home ~More'
        ELSE 'Error generating link'
    END;

  RETURN (aOutput);
END
4

1 回答 1

2

这是你想要的吗?

SET aOutput = CASE atype
    WHEN 1 THEN 'Something'
    WHEN 2 THEN 'Something'
    WHEN 3 THEN  'Something'
    WHEN 10 THEN  
        concat(CASE mStatus
                  WHEN '14' THEN 'Place Order Link'
                  WHEN '01' THEN 'Cancel Order Link'
                  WHEN '11' THEN 'Order Cancelled - Place order link'
                  WHEN '00' THEN 'Order - Under Process'#No link here
                  WHEN '10' THEN 'Cancel - Under Process' #No link here
                  ELSE 'Detect Status Error'
              END, ' Home ~ More')
        //I need to concat 'Home ~ More' to the above text, but don't want to add it next to the text above.
        //So it ends up like 'Place Order Link ~ Home ~More'
    ELSE 'Error generating link'

在您的代码片段中,mStatus未定义。我假设在原始代码中,这已经被处理了。

于 2013-06-23T18:23:34.987 回答