我想创建一个 sql 查询(或 plpgsql),它将 md5() 所有给定的行,无论类型如何。但是,在下面,如果一个为空,则哈希为空:
UPDATE thetable
SET hash = md5(accountid || accounttype || createdby || editedby);
我稍后使用散列来比较唯一性,因此空散列不适用于此用例。
问题在于它处理连接空值的方式。例如:
thedatabase=# SELECT accountid || accounttype || createdby || editedby
FROM thetable LIMIT 5;
1Type113225
<NULL>
2Type11751222
3Type10651010
4Type10651
如果我知道类型,我可以使用 coalesce 或 CASE 语句;但是,我有很多表,我不会提前知道每一列的类型。