我正在数据仓库中工作,并将3列与以下内容组合在一起:
CAST(
ISNULL(PORCH_TYPE_1,'') ||
CASE WHEN PORCH_TYPE_2 IS NULL THEN '' ELSE ', ' END ||
ISNULL(PORCH_TYPE_2,'') ||
CASE WHEN PORCH_TYPE_3 IS NULL THEN '' ELSE ', ' END ||
ISNULL(PORCH_TYPE_3,'') AS VARCHAR(250)
) AS PORCH_TYPE,
这是有效的,除了结果,我最终会得到一些看起来像的东西:
Open Porch,None,None
或
无,无,开放门廊
我需要做的是删除两个
无
和
,无
我将如何在同一列/声明中执行此操作?
答案 0 :(得分:1)
一种方法是将逗号连接到每个有效门廊类型的末尾。然后使用TRIM()
删除最终的尾随逗号:
TRIM(TRAILING ',' FROM
((CASE WHEN PORCH_TYPE_1 <> 'None' THEN PORCH_TYPE_1 || ',' END) ||
(CASE WHEN PORCH_TYPE_2 <> 'None' THEN PORCH_TYPE_2 || ',' END) ||
(CASE WHEN PORCH_TYPE_3 <> 'None' THEN PORCH_TYPE_3 || ',' END)
)