我有一个带有'user_id'列的表。在同一个表格中,我有另一个标有“GMID”的数据字段。在该GMID列中,有一些字段为空,非空字段具有与该行内的user_id数据字段匹配的值。有没有办法创建一个脚本或查询来更新GMID列中的所有空字段,以匹配该行中user_id行中的相应数据值?我应该遵循哪些最佳实践,采用不同的方法?提前感谢任何可以提供帮助的人。
答案 0 :(得分:3)
当然有
UPDATE your_table
SET GMID=user_id
WHERE GMID IS NULL
但如果GMID始终与user_id相同,您甚至不需要WHERE。
顺便说一句,为什么在一个表中需要两列具有相同数据的列?
答案 1 :(得分:1)
另一种方法是使用' coalesce'功能。它将返回第一个非null值。此方法不涉及表格上的数据更改。在查询中,您可以选择合并(GMID,user_id)作为GMID ...'它将返回非空的第一列。
oracle DB的文档: http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions023.htm
更新:我刚刚颠倒了合并函数中的列名...