根据另一列中的值拆分列中的数据

Split data in column based on value of in another column

我有一个 table 完整的艺术家和曲目名称,是从两个不同的地方导入的。

有些是正确的,艺术家和标题在不同的列中,但还有其他行,标题列中的所有内容都用“-”分隔,艺术家列是 NULL

无法在源代码中更改它,因为两种数据格式都在同一个日志文件中。

我想我需要在 Artist 列中获取所有具有 NULL 值的行,然后使用 STRING_SPLIT 拆分 Title 列。我的数据库是 SQL server 2019.

我已经尝试修改 Internet 上的许多不同示例,但没有任何效果。

感谢您的帮助!

您可以将此作为 select 查询:

select t.*,
       (case when artist is null and title like '%-%'
             then left(title, charindex('-', title) - 1)
             else artist
        end) as imputed_artist,
       (case when artist is null and title like '%-%'
             then stuff(title, 1, charindex('-', title) + 1, '')
             else title
        end) as imputed_title
from t;

可以在 update.

中应用类似的逻辑