试图按存在“ /”定界符的语言对数据进行拆分它按站点ID排序,因此只有ID 412中包含法语。试图使用string_split(),但它会按行拆分,但我希望按列将其替换为示例
我想从中转换的结果
siteid notes
412 Le cardio-/ Cardio Tennis
412 Le cardio-/Cardio Tennis
412 La ligue de / Drop-In Tennis
411 An extended duration
411 Increase flexibility
我想成为的结果
siteid notes French english
412 Le cardio-/ Cardio Tennis Le cardio-tennis Cardio Tennis
412 Le cardio-/Cardio Tennis Le cardio-tennis Cardio Tennis
412 La ligue de / Drop-In Tennis La ligue de tennis Drop-In Tennis
411 An extended duration null An extended duration
411 Increase flexibility Null Increase flexibility
答案 0 :(得分:2)
由于您在问题中使用string_split(),因此我假设这是SQL Server,否则请忽略此答案。
我相信这会起作用:
SELECT siteid,
notes,
CASE WHEN CHARINDEX('/', notes) > 0
THEN CONCAT(LEFT(notes, CHARINDEX('/', notes)-1),
RIGHT(notes,CHARINDEX(' ',REVERSE(notes))))
ELSE ''
END AS french,
CASE WHEN CHARINDEX('/', notes) > 0
THEN RIGHT(notes, LEN(notes) - CHARINDEX('/', notes))
ELSE notes
END AS english
FROM {your_table}
答案 1 :(得分:-1)
postgres的工作示例:
Select split_part(name, '/', 1) AS Spanish,
split_part(name, '/', 2) as English
from translations