我正在尝试使用 sql (MS SQL server 2008) 进行一些文本格式化。我有三个变量,它们要么返回空字符串,要么返回某种文本,它们永远不会为空。我希望以下列方式显示文本:
@Var1='A' @Var2='B' @Var3='C' ==> A, B, C
@Var1='A' @Var2='' @ Var3='C' ==> A, C
@Var1='' @Var2='B' @Var3='C' ==> B, C
@Var1='' @Var2='' @Var3='C' ==> C
。
.
.
@Var1='' @Var2='' @Var3='' ==>
等
这是我所拥有的简化版本...
DECLARE @Var1 NVARCHAR(100)
DECLARE @Var2 NVARCHAR(100)
DECLARE @Var3 NVARCHAR(100)
SET @Var1 = 'A'
SET @Var2 = 'B'
SET @Var3 = 'C'
SELECT
ISNULL(NULLIF(@Var1,''), '')
+
CASE
WHEN NULLIF(@Var1,'') IS NOT NULL AND NULLIF(@Var2,'') IS NOT NULL THEN ', ' ELSE ''
END
+
ISNULL(NULLIF(@Var2,''),'')
+
CASE
WHEN NULLIF(@Var2,'') IS NOT NULL AND NULLIF(@Var3,'') IS NOT NULL THEN ', ' ELSE ''
END
+
ISNULL(NULLIF(@Var3,''),'')
我觉得我错过了一些重要的细节。让我知道是否需要任何澄清。