连接多个值并在 null 时删除字符
Concatenate multiple values and removing characaters when null
我有以下查询
select id, CORD.LABEL ||' ('|| CORD.INTERVENT_TYPE || ')' ||' '||REFER.LABEL ||' ('|| REFER.INTERVENT_TYPE || ')'||' '|| INTER.LABEL ||' ('|| INTERVENT_TYPE || ')' AS INTERVEN_TYPE
from tableA
这会产生以下结果。
ID INTERVEN_TYPE
1 () () Education(Other)
我只想在值不为空时显示结果。我希望看到。
ID INTERVEN_TYPE
1 Education(Other)
我试过 case 表达式、nvl 和 coalesce。由于我无法创建正确的语法,哪一个最有效?
与CASE
:
select
id,
TRIM(
CASE CORD.LABEL ||'('|| CORD.INTERVENT_TYPE || ')'
WHEN '()' THEN ''
ELSE CORD.LABEL ||' ('|| CORD.INTERVENT_TYPE || ')'
END
||' '||
CASE REFER.LABEL ||'('|| REFER.INTERVENT_TYPE || ')'
WHEN '()' THEN ''
ELSE REFER.LABEL ||' ('|| REFER.INTERVENT_TYPE || ')'
END
||' '||
CASE INTER.LABEL ||'('|| INTERVENT_TYPE || ')'
WHEN '()' THEN ''
ELSE INTER.LABEL ||' ('|| INTERVENT_TYPE || ')'
END
)
AS INTERVEN_TYPE
from tableA
我现在从左括号中删除了 1 space。
编辑:添加了TRIM功能。
如果你用 REPLACE
:
消除 ()
,也许这也会起作用
select
id, TRIM(
REPLACE(CORD.LABEL ||' ('|| CORD.INTERVENT_TYPE || ')', '()')
||' '||
REPLACE(REFER.LABEL ||' ('|| REFER.INTERVENT_TYPE || ')', '()')
||' '||
REPLACE(INTER.LABEL ||' ('|| INTERVENT_TYPE || ')', '()')
)
AS INTERVEN_TYPE
from tableA
我有以下查询
select id, CORD.LABEL ||' ('|| CORD.INTERVENT_TYPE || ')' ||' '||REFER.LABEL ||' ('|| REFER.INTERVENT_TYPE || ')'||' '|| INTER.LABEL ||' ('|| INTERVENT_TYPE || ')' AS INTERVEN_TYPE
from tableA
这会产生以下结果。
ID INTERVEN_TYPE
1 () () Education(Other)
我只想在值不为空时显示结果。我希望看到。
ID INTERVEN_TYPE
1 Education(Other)
我试过 case 表达式、nvl 和 coalesce。由于我无法创建正确的语法,哪一个最有效?
与CASE
:
select
id,
TRIM(
CASE CORD.LABEL ||'('|| CORD.INTERVENT_TYPE || ')'
WHEN '()' THEN ''
ELSE CORD.LABEL ||' ('|| CORD.INTERVENT_TYPE || ')'
END
||' '||
CASE REFER.LABEL ||'('|| REFER.INTERVENT_TYPE || ')'
WHEN '()' THEN ''
ELSE REFER.LABEL ||' ('|| REFER.INTERVENT_TYPE || ')'
END
||' '||
CASE INTER.LABEL ||'('|| INTERVENT_TYPE || ')'
WHEN '()' THEN ''
ELSE INTER.LABEL ||' ('|| INTERVENT_TYPE || ')'
END
)
AS INTERVEN_TYPE
from tableA
我现在从左括号中删除了 1 space。
编辑:添加了TRIM功能。
如果你用 REPLACE
:
()
,也许这也会起作用
select
id, TRIM(
REPLACE(CORD.LABEL ||' ('|| CORD.INTERVENT_TYPE || ')', '()')
||' '||
REPLACE(REFER.LABEL ||' ('|| REFER.INTERVENT_TYPE || ')', '()')
||' '||
REPLACE(INTER.LABEL ||' ('|| INTERVENT_TYPE || ')', '()')
)
AS INTERVEN_TYPE
from tableA