Объединять данные внутри столбца вместо объединения столбцов - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть этот запрос, который объединяет все нужные мне столбцы:

select * from Customer c
inner join Tier t on c.TierId = t.Id

Однако я не хочу объединять все столбцы. Я хотел бы иметь столбец Tier, а затем иметь полную запись уровня в этом столбце (так как я сопоставляюсь с json, и он должен быть в этом формате).

Как создать подгруппу вот так?

Я пытался:

select *, Tier = (select * from Tier t where t.Id = c.TierId ) from Customer c
inner join Tier t on c.TierId = t.Id

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

Редактировать:

Итак, я хочу что-то вроде этого:

- CustomerID
- CustomerName
- CreatedDate
- Tier <-- all tier columns as a subgroup like when you group by
    - TierId
    - TierName

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Похоже, вам нужно sql Функция CONCAT . Запрос будет выглядеть примерно так:

SELECT CONCAT("[", column1, ", ", column2, "]") AS tier FROM Tier

SQLite не поддерживает CONCAT, поэтому вы должны использовать || такой оператор:

SELECT ("[" || column1 || ", " || column2 || "]") AS tier FROM Tier

Скобки пометят его как массив в JSON, вы можете удалить их, если хотите.

Вы также можете добавить имя столбца к результату с помощью просто добавив их в виде строки, чтобы сделать ее более

ПРИМЕЧАНИЕ. Вы не сможете получить доступ к значениям, таким как массив, потому что это просто объединяет значения в строку

0 голосов
/ 27 февраля 2020

Вы хотите выбрать только один столбец из tier? Не забывайте о столбцах, которые вы хотите:

select t.tier, c.*
from Customer c inner join
     Tier t
     on c.TierId = t.Id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...