如何使用 SQL 更新单列中的某些值组
How to update certain group of values in single column using SQL
我是 python 的新手,正在使用 sql 更新表格。我想问一下如何使用 SQL 更新单列中的某些值组。请看下面的例子:
id
123
999991234
235
789
200
999993456
我需要将缺少的前缀“99999”添加到没有“99999”的记录中。默认情况下,id 列具有整数数据类型。我已经尝试过 sql 语句,但是我在使用 cast 语句尝试过的数据类型之间存在冲突:
update tablename
set id = concat('99999', cast(id as string))
where id not like '99999%';
要能够使用 LIKE
operator and CONCAT()
function,列数据类型应为 STRING
或 BYTE
。在这种情况下,您需要转换 WHERE
子句条件以及 SET
语句的值。
使用您的示例数据:
运行 这个更新脚本:
UPDATE mydataset.my_table
SET id = CAST(CONCAT('99999', CAST(id AS STRING)) AS INTEGER)
WHERE CAST(id as STRING) NOT LIKE '99999%'
结果:
行已成功更新,table 以以下数据结束:
我是 python 的新手,正在使用 sql 更新表格。我想问一下如何使用 SQL 更新单列中的某些值组。请看下面的例子:
id |
---|
123 |
999991234 |
235 |
789 |
200 |
999993456 |
我需要将缺少的前缀“99999”添加到没有“99999”的记录中。默认情况下,id 列具有整数数据类型。我已经尝试过 sql 语句,但是我在使用 cast 语句尝试过的数据类型之间存在冲突:
update tablename
set id = concat('99999', cast(id as string))
where id not like '99999%';
要能够使用 LIKE
operator and CONCAT()
function,列数据类型应为 STRING
或 BYTE
。在这种情况下,您需要转换 WHERE
子句条件以及 SET
语句的值。
使用您的示例数据:
运行 这个更新脚本:
UPDATE mydataset.my_table
SET id = CAST(CONCAT('99999', CAST(id AS STRING)) AS INTEGER)
WHERE CAST(id as STRING) NOT LIKE '99999%'
结果:
行已成功更新,table 以以下数据结束: