gpt4 book ai didi

MySQL 将逗号分隔值从一列移动到另一列

转载 作者:行者123 更新时间:2023-11-29 23:15:56 26 4
gpt4 key购买 nike

大家晚上好;

我在 MySql 中有一个表,我想更新如下。仅供引用,我已经搜索了这个主题,但尚未找到解决方案。

MySQl数据库中的表名为ALK_Results_NEWICD9列中的数据包含以逗号分隔的数据。我需要将第一组保留在 ICD9 列中,例如第一行有 V57.9 、 246.9。我需要将 V57.9 保留在 ICD9 列中,并将 246.9 移至 ICD9_SECONDARY 列中。如果一行超过 2 个,那么我需要将所有其他代码移至 ICD9_OTHER 列(此列可以有多个以逗号分隔的 ICD9 代码)

总而言之,第一组代码需要保留在 ICD9 列中,第二组代码需要移至 ICD9_SECONDARY 中。数据移动后,ICD9 列应该只有第一组代码。

任何帮助将不胜感激。

最佳答案

假设表中已存在两列,您可以使用更新更改数据:

update alk_results_new
set icd9_secondary = substr(icd9, instr(icd9, ',') + 1),
icd9 = substring_index(icd9, ',', 1)
where icd9 like '%,%';

编辑:

哎呀,我没有意识到有三列。方法类似,但稍微复杂一些,因为您需要考虑字符串的长度。我认为以下应该满足您的要求:

update alk_results_new
set icd9_other = (case when icd9 like '%,%,%'
then substr(icd9, length(substring_index(icd9, ',', 2)) + 2)
end),
icd9_secondary = (case when icd9 like '%,%'
then substring_index(substring_index(icd9, ',', 2), ',', -1)
end),
icd9 = substring_index(icd9, ',', 1);

注意:在运行更新之前在select上测试逻辑。

关于MySQL 将逗号分隔值从一列移动到另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com