Вот моя таблица ввода:
ID Position Email
1 1 email1
1 2 email2
1 3 email3
2 1 emaila
3 1 emailz
3 2 emaily
Это таблица вывода, которую я хотел бы заполнить:
ID primary_email Secondary_email
1 email1 email2
2 emaila
3 emailz emaily
0
reid55
13 Авг 2014 в 10:22
1
Просили уже миллионы раз ... попробуйте поискать
– Mitch Wheat
13 Авг 2014 в 10:24
Я потратил довольно много времени на поиски, но не нашел ничего похожего
– reid55
13 Авг 2014 в 10:27
Вы пишете «входной файл», но упоминаете SQL. Это не имеет смысла, поскольку SQL работает с таблицами базы данных, а не с файлами. Вы имеете в виду, что то, что вы перечисляете, является таблицей базы данных?
– sleske
13 Авг 2014 в 10:32
Откуда поступает ввод?
– serakfalcon
13 Авг 2014 в 10:33
1
Да ... если вы используете «row» вместо «line» и «table» вместо «file», вы должны получить лучшие результаты поиска;) В любом случае, конкатенация немного зависит от используемой вами СУБД. У разных двигателей разные функции для этого. И вы не говорите нам, какую СУБД вы используете.
– Frazz
13 Авг 2014 в 10:47
1 ответ
Лучший ответ
Может быть что-то вроде этого
SELECT ID,
MAX(CASE WHEN Position = 1 THEN Email ELSE '' END) AS primary_email,
MAX(CASE WHEN Position = 2 THEN Email ELSE '' END) AS Secondary_email
FROM YourTable
GROUP BY ID;
0
Vignesh Kumar A
13 Авг 2014 в 11:10
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.