首页 > 解决方案 > SQL Server:拆分列

问题描述

在 SQL Server 数据库中,我有一列CONTACT_VALUE包含 0、1 或 2 个 CHR(10) 字符的字段。

列值示例:

BLOCK B MANTAGE PARKCHR(10)MONTAGUE GARDEN WESTERN CAPECHR(10)PLATTEKLOOF ROAD

我想输出:

Column 1 = BLOCK B MANTAGE PARK
Column 2 = MONTAGUE GARDEN WESTERN CAPE
Column 3 = PLATTEKLOOF ROAD

我在 Progress OpenEdge DB 中有相同的数据,我使用以下代码获得了结果,但我无法在 SQL Server 中复制它。

PRO_ELEMENT 和 PRO_ARR_DESCAPE 是否有 T-SQL 等效项?

{FN PRO_ARR_DESCAPE(PRO_ELEMENT(REPLACE(PRO_ARR_ESCAPE(CONTACT_VALUE), CHR(10), ';'), 1,1)) },
CASE WHEN(LENGTH(REPLACE(CONTACT_VALUE,CHR(10), '11')) - LENGTH(CONTACT_VALUE)) < 1 THEN '' ELSE { FN UPPER(PRO_ARR_DESCAPE(PRO_ELEMENT(REPLACE(PRO_ARR_ESCAPE(CONTACT_VALUE), CHR(10), ';'), 2,2))) } END,
CASE WHEN(LENGTH(REPLACE(CONTACT_VALUE,CHR(10), '11')) - LENGTH(CONTACT_VALUE)) < 2 THEN '' ELSE { FN UPPER(PRO_ARR_DESCAPE(PRO_ELEMENT(REPLACE(PRO_ARR_ESCAPE(CONTACT_VALUE), CHR(10), ';'), 3,3))) } END,

非常感谢!

标签: sqlsql-servercharopenedge

解决方案


推荐阅读