【问题标题】:PSQL - Find all values and make unique based on non unique values in another columnPSQL - 查找所有值并根据另一列中的非唯一值使其唯一
【发布时间】:2021-10-29 21:31:15
【问题描述】:

我有一个包含多个列的视图,需要更新 CHILD 列中的值,以便对于列 PARENT 中的每个不同值,列 CHILD 中都有唯一值。如果没有,请在 Child 中的“-”之前的值中添加几个字符来更新。

示例:初始表

ID PARENT CHILD
1 ABC - 123 BBB - 364
2 ABC - 123 BBB - 364
3 GHI - 789 BBB - 364
4 JKL - 343 NNN - 679
5 MNO - 524 NNN - 679
6 PQR - 785 YYY - 678
7 STU - 765 MMM - 687

最终结果:

ID PARENT CHILD
1 ABC - 123 BBBA - 364
2 ABC - 123 BBBA - 364
3 GHI - 789 BBB - 364
4 JKL - 343 NNNQ - 679
5 MNO - 524 NNN - 679
6 PQR - 785 YYY - 678
7 STU - 765 MMM - 687

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    您应该在 postgresql (PlPgsql) 中编写一个函数,该函数利用cursor 来处理 PARENT 表中的每个不同的行值,并在循环中迭代以更新 CHILD 列中的值。您可能需要添加字母和数字以使值唯一。阅读此article,了解如何使用游标逐行迭代并对表中的元组进行一些更新。

    【讨论】:

    • 感谢我查看链接文章的提示。你知道这会如何帮助我开始吗?
    • 所以最佳做法是先尝试并在无法解决或遇到任何错误时寻求帮助。请参阅此 SO recommendation,了解如何创建可重现的代码。
    猜你喜欢
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多