Я надеюсь, что использую правильную терминологию в своем заголовке, но у меня есть это (упрощенное) выражение SQL:
SELECT name,
MAX(CASE WHEN org_assigned_role= "CFO" THEN username END) "CFO",
MAX(CASE WHEN org_assigned_role= "CIO" THEN username END) "CIO"
FROM `wp_hubspot` , `wp_hubspot_companies` where company_id=comp_id
GROUP BY name
ORDER BY name
Проблема в том, что у меня есть 2 CFO в моей таблице, и я хочу, чтобы оба их имени были в одном поле/столбце «CFO». Это возможно?
Спасибо
Похоже, вы хотите:
select name,
GROUP_CONCAT(DISTINCT CASE WHEN org_assigned_role = "CFO" THEN username END ORDER BY username SEPARATOR ", ") "CFO",
MAX(CASE WHEN org_assigned_role= "CIO" THEN username END) "CIO"
FROM `wp_hubspot` , `wp_hubspot_companies` where company_id=comp_id
GROUP BY name
Если вы имеете в виду, что вам нужны два в отдельных строках, вы можете иметь в виду несколько результатов, и вам нужно будет предоставить образцы данных и ожидаемый результат.
Обратите внимание, что результат GROUP_CONCAT усекается до @@group_concat_max_len
символов (по умолчанию 1024 в mysql и более старых версиях mariadb).
Потрясающий! Да, точно. Большое спасибо. Не думаю, что я когда-либо догадался бы об этом сам.
Рассмотрите возможность решения проблем с отображением данных в коде приложения.