【问题标题】:Put values into a list inside SQL column Field将值放入 SQL 列字段中的列表中
【发布时间】:2014-06-19 23:03:24
【问题描述】:

我希望在列字段内放置一个字符串列表。我在每个值后使用 Concat 函数和回车。

CONCAT(column1.value, CHAR(13) + char(10), column2.value, CHAR(13) + char(10), column3.value3,CHAR(13) + char(10) as [产品]

如果所有列都有值,这可以正常工作。

PRODUCTS  
value1  
value2  
value3  

但是,如果 column1 中没有值,则输出将是

PRODUCTS  
--emptyline--  
value2  
value3  

我使用 case 语句来检查每个值是否存在。如果它不存在,我可以只输出存在的值,不输出不存在的回车符

case when   
    len(CAST(column1.fieldValue as varchar)) > 0 then 'value1'  
end as value1

【问题讨论】:

  • 肯定 UNPIVOT 是更好的方法吗?
  • 抱歉应该解释一下值需要在同一个字段中

标签: sql sql-server-2012


【解决方案1】:

使用+ 将列值与CRLF 连接,并使用concat 函数连接列。

concat(Col1+char(13)+char(10),  Col2+char(13)+char(10)) 

如果一部分为空,则将字符串与+ 连接将使整个结果为空。 concat 函数中的空值会自动转换为空字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-06
    • 2022-01-06
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多