根据另一列中的值拆分列中的数据
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
.
中应用类似的逻辑
我有一个 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
.