MySQL конкат на имя столбца - PullRequest
0 голосов
/ 19 ноября 2018

привет, я только начинаю изучать 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);

Но получил эту ошибку (ОШИБКА 1583 (42000): неверные параметры в вызове нативной функции 'concat')

1 Ответ

0 голосов
/ 19 ноября 2018

Поздравляем с началом изучения 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 для переименования созданного вами столбца.)

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы по этому поводу.

...