试图按“/”分隔符所在的语言进行数据分割,它是按站点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发布于 2019-04-04 19:37:22
由于您在问题中使用的是string_split(),我假设这是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}发布于 2019-04-04 19:29:50
postgres的工作示例:
Select split_part(name, '/', 1) AS Spanish,
split_part(name, '/', 2) as English
from translationshttps://stackoverflow.com/questions/55523391
复制相似问题