数据如下所示:
Initiative: Credible Sources; Initiative: Just in Time; Initiative: Database Normalization;
我希望它看起来像这样:
Credible Sources Just in Time Database Normalization
摆脱一个或另一个很简单。
这:
SELECT DISTINCT LEFT(OPTIONAL_FIELD_2, CHARINDEX(';', OPTIONAL_FIELD_2 + ';')-1) AS OPTIONAL_FIELD_2 FROM my_table ORDER BY OPTIONAL_FIELD_2
给我这样的建议:倡议:可信来源倡议:及时的倡议:数据库规范化
还有这个:
SELECT DISTINCT RIGHT(OPTIONAL_FIELD_2, LEN(OPTIONAL_FIELD_2)-12) AS OPTIONAL_FIELD_2 FROM my_table ORDER BY OPTIONAL_FIELD_2
给我这个:
Credible Sources; Just in Time; Database Normalization;
很难弄清楚如何将两者结合起来。
只是使用substring()怎么样?
substring()
select replace(substring(option_field_2, 13, 999), ';', '')
或者,如果您不知道前缀有多长时间:
select replace(stuff(option_field_2, 1, charindex(':', option_field_2) + 1, ''), ';', '')
这是一个db<> fiddle。
db<> fiddle