SQL-запрос для заполнения столбца комбинацией других столбцов - PullRequest
1 голос
/ 03 февраля 2012

У меня есть таблица с этой структурой

ID | Parameter1 | Parameter 2  | Multiplication
1  |     1024   |     100      |
2  |     1200   |     200      |
3  |     1600   |     300      |
4  |     1900   |     400      |

Я хочу заполнить столбец Умножение комбинированной строкой из параметра 1 и параметра 2

ID | Parameter1 | Parameter 2  | Multiplication
1  |     1024   |     100      |   1024_100
2  |     1200   |     200      |   1200_200
3  |     1600   |     300      |   1600_300
4  |     1900   |     400      |   1900_400

Помогите мне, пожалуйста, создать этот SQLQuery

Ответы [ 5 ]

5 голосов
/ 03 февраля 2012

Альтернативой для SQL Server является добавление столбца, чтобы обработать это для вас. Он автоматически обновит значение, если изменится параметр1 или параметр2:

ALTER TABLE myTable
    ADD myJoinedColumn AS CAST(Parameter1 AS VARCHAR(10)) + '_' + CAST(Parameter2 AS VARCHAR(10))

Или, как @Scozzard упоминает в своем ответе, если они уже являются строками:

ALTER TABLE myTable
    ADD myJoinedColumn AS (Parameter1 + '_' + Parameter2)
4 голосов
/ 03 февраля 2012

Используя SQL, следующий запрос должен работать ..

Предполагая, что поля Param являются целыми числами, используйте приведение, чтобы сделать их строками

UPDATE Table1 SET Multiplication = CAST(Parameter1 AS VARCHAR(10)) + '_' + CAST(Parameter2 AS VARCHAR(10))

Иначе, если они уже являются строками (например, varchar, text), просто не читайте. То есть.,

UPDATE Table1 SET Multiplication = Parameter1 + '_' + Parameter2

Просто измените Table1 на имя вашей таблицы

2 голосов
/ 27 февраля 2016
update Table1 set Multiplication = CONCAT_WS('_',Parameter1,Parameter2)
2 голосов
/ 03 февраля 2012

Для MySQL:

update Table1 set
    Multiplication = concat(cast(Parameter1 as char), '_', cast(Parameter2 as char))

Подробнее о cast и concat в Справочном руководстве по MySQL 5.0.

1 голос
/ 03 февраля 2012
update tablename
set Multiplication = convert(varchar, Parameter1) + '_' + convert(varchar, Parameter2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...