2012-02-03 2 views
0

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

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

+0

Вы можете сцепить строки, но как вам это нужно, зависит от используемого вами сервера - так, какой сервер вы используете? –

+0

MySQL 5.0.45-community-nt – ShockwaveNN

ответ

4

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

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

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

Иначе, если они уже строки (например, VARCHAR, текст) просто не отбрасывают. Т.е.,

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

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

+0

Ваш второй вариант работал, но очень странным образом. Он заполняет последний столбец суммой первых двух столбцов, но все 3 столбца являются столбцами «ТЕКСТ». Также ни CAST, ни CONVERT не работают, MySQL дает ошибку на них – ShockwaveNN

+1

Hrm это должен быть синтаксис MySQL, являющийся болью ... вы пробовали версию Michał Powaga? – Scozzard

+0

О, этот вариант сработал. date Table1 set Умножение = concat (Параметр1, '_', Параметр2), но это не удавалось с частью «cast». BTW я получаю все, что хочу, спасибо – ShockwaveNN

2

Для MySQL:

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

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

1
update tablename 
set Multiplication = convert(varchar, Parameter1) + '_' + convert(varchar, Parameter2) 
3

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

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) 
Смежные вопросы