SQL Query用其他列的组合填充列

时间:2012-02-03 09:15:20

标签: mysql sql sql-update

我有这个结构的表

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 个答案:

答案 0 :(得分:4)

使用SQL然后以下查询应该有效..

假设Param字段是int,请使用强制转换来使它们成为字符串

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

否则,如果它们已经是字符串(例如,varchar,text),则不要强制转换。即,

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

只需将Table1更改为您的表名称

即可

答案 1 :(得分:4)

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)

答案 2 :(得分:2)

对于MySQL:

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

有关MySQL 5.0参考手册中的castconcat的更多信息。

答案 3 :(得分:2)

update Table1 set Multiplication = CONCAT_WS('_',Parameter1,Parameter2)

答案 4 :(得分:1)

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