首页 > 解决方案 > mysql concat 列名

问题描述

嗨,我刚开始学习 sql,我希望使用 concat 将这些列合并为一个,但没能做到。我可以在没有 concat 的情况下运行代码,但是当我使用 concat 时,它会给我一个错误代码。谁能告诉我我做错了什么?

SELECT CONCAT('A purchase with the purchase ID of' AS "Constraint",
ONLINEPURCHASE.PurchaseID AS "OLID", 'is an online purchase of type' AS "Condition", ONLINEPURCHASE.OnlineType AS "OLType", 'and also a walkin purchase of location' AS "Condition", WALKINPURCHASE.ShopLocation AS "ShopLocation") 
FROM ONLINEPURCHASE JOIN WALKINPURCHASE
    ON ONLINEPURCHASE.PurchaseID = WALKINPURCHASE.PurchaseID
WHERE WALKINPURCHASE.PurchaseID IN (SELECT PurchaseID
        FROM WALKINPURCHASE);

但是得到了这个错误(ERROR 1583 (42000): Incorrect parameters in call to native function 'concat')

标签: mysqlconcat

解决方案


恭喜你开始学习 SQL,它超级有用!让我试着消除​​你的误解。

CONCAT函数采用一些字符串或列值并将它们连接在一起。无需在AS其中使用关键字。

这就是我认为您正在寻找的内容:

SELECT
  CONCAT(
    'A purchase with the purchase ID of',
    ONLINEPURCHASE.PurchaseID,
    'is an online purchase of type',
    ONLINEPURCHASE.OnlineType,
    'and also a walkin purchase of location',
    WALKINPURCHASE.ShopLocation
  ) AS result
FROM ONLINEPURCHASE JOIN WALKINPURCHASE
  ON ONLINEPURCHASE.PurchaseID = WALKINPURCHASE.PurchaseID
WHERE WALKINPURCHASE.PurchaseID IN
  (SELECT PurchaseID FROM WALKINPURCHASE);

这将创建您在CONCAT语句中构建的句子,并将其作为结果集中的单列返回。(我已使用AS关键字重命名您构建的列。)

如果您对此有任何疑问,请告诉我。


推荐阅读