我在下面的查询中收到错误"调用本机函数'CONCAT'时参数不正确":

SELECT
  *,
  GROUP_CONCAT(
    CASE
      WHEN `REASONORINSTRUCTIONCODE` = 'R'
      THEN CONCAT(
        "name-",
        `USERWHOENTEREDTHISLINE`,
        ",reason-",
        RTRIM(
          `REASONSORSHIPPINGINSTRUCTIONS`
        )
      END,
      ", "
    )
  ) AS reason,
  GROUP_CONCAT(
    CASE
      WHEN [ `REASONORINSTRUCTIONCODE` ] = 'S'
      THEN CONCAT(
        "name-",
        `USERWHOENTEREDTHISLINE`,
        ",shipping instruction-",
        RTRIM(
          `REASONSORSHIPPINGINSTRUCTIONS`
        )
      END,
      ", "
    )
  ) AS shipping instruction
FROM
  TABLE
GROUP BY `PICKUP_NO`

推荐答案

您的查询有几个问题.首先,你不能用)结尾来结束你的CONCAT,其次你的AS shipping instruction不能包含空格.接下来是[REASONORINSTRUCTIONCODE],go 掉[]

请看下面的格式化查询:

SELECT
  *,
  GROUP_CONCAT(
    CASE
      WHEN `REASONORINSTRUCTIONCODE` = 'R'
      THEN CONCAT(
        "name-",
        `USERWHOENTEREDTHISLINE`,
        ",reason-",
        RTRIM(
          `REASONSORSHIPPINGINSTRUCTIONS`
        ))
      END,
      ", "
    )
   AS reason,
  GROUP_CONCAT(
    CASE
      WHEN `REASONORINSTRUCTIONCODE` = 'S'
      THEN CONCAT(
        "name-",
        `USERWHOENTEREDTHISLINE`,
        ",shipping instruction-",
        RTRIM(
          `REASONSORSHIPPINGINSTRUCTIONS`
        ))
      END,
      ", "
    )
   AS shipping_instruction
FROM
  `TABLE`
GROUP BY `PICKUP_NO`

Mysql相关问答推荐

加载数据本地infile,字段中有双引号和逗号

如何获得表中只有最大值行的一个列被另一个列分区?

约会时的意外行为

为什么我的带有索引字段和非索引字段的 Select 有时需要很长时间

根据现有行 Select 月份日期

我可以在姓名和姓名日期之间进行搜索吗?

按特定顺序匹配 EventS 和下一个 EventA 之前的第一个 Event 之间的记录

替代对多个表执行 FULL OUTER JOIN?

为什么 `count` 函数有效但 `sum` 无效?

如何编写一个查询,计算表中每个日期的一个日期加上前 4 天的记录数?

计算MySQL中的连续出现

如何计算每行的剩余金额?

MySql部分匹配基于部分查询代码

有没有更好的方法在无限滚动的网页上呈现获取的提要数据?

我在查询中没有得到正确的结果

如何通过未知列中的唯一值有效地更新 MySQL 行

DECIMAL(m, n) 在 64 位系统中如何表示?

如何在 Mysql 中创建复合外键

MySQL 5.6 DATETIME 不接受毫秒/微秒

在 MySQL 中签名或未签名