Как объединить столбцы из одной таблицы в запросе SQL, чтобы показать их как один? - PullRequest
0 голосов
/ 27 февраля 2019

У меня просто быстрый вопрос о том, как что-то сделать, а также о том, возможно ли это вообще вообще.Я пытался найти ответ в Интернете, но безуспешно.

Я создам очень упрощенный сценарий, который не обязательно является именно тем, что я хочу сделать, но это довольно хороший пример.Допустим, у меня есть эта таблица

Users
----------------------------------------------
| ID | FirstName | LastName | Username | ... |
|----|-----------|----------|----------|-----|
|   1| John      | Doe      | jdoe     | ... |
|   2| James     | Smith    | jsmith   | ... |
|   3| Jane      | Fisher   | jfisher  | ... |
|   x| ...       | ...      | ...      | ... |
----------------------------------------------

Допустим, я хочу создать запрос, чтобы показать только FirstName и LastName, но в качестве полного имени.

Я мог бы сделать:

SELECT Users.FirstName, Users.LastName
FROM Users
WHERE ID > 2

Однако я хочу, чтобы я получил FirstName и LastName в виде одного столбца, который я бы представил следующим образом:

(Users.FirstName, Users.LastName) AS 'Full Name'

Поэтому я получу что-то вроде:

Users
---------------------------------------
| ID | Full Name     | Username | ... |
|----|---------------|----------|-----|
|   1| John Doe      | jdoe     | ... |
|   2| James Smith   | jsmith   | ... |
|   3| Jane Fisher   | jfisher  | ... |
|   x| ...           | ...      | ... |
---------------------------------------

Конечно, в моем реальном запросе я хотел бы объединить чуть больше, чем просто 2 столбца, но я думаю, вы поняли.Так возможно ли это?Если так, как я могу это сделать.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Вы используете MySQL.Хотя стандартный оператор конкатенации строк ||, он не работает с MySQL.Используйте функцию CONCAT_WS:

select concat_ws(' ', firstname, lastname)
from mytable;

(Вы также можете использовать функцию CONCAT, но я предпочитаю CONCAT_WS в этой ситуации.)

Вот документы: https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_concat-ws

0 голосов
/ 27 февраля 2019
SELECT first_name + ' ' + last_name as full_name from users

в Oracle

SELECT first_name || ' ' || last_name full_name from users

edit: возможно, если у вас есть проблемы с типом данных - вы можете заставить его думать, что это строка - что-то вроде

SELECT '' + first_name + ' ' + last_name from users
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...