【问题标题】:Introduce new line in the cell value在单元格值中引入新行
【发布时间】:2017-05-26 05:42:33
【问题描述】:


  1. 'abc def ghi' 但我们希望像在 sql server 中一样输出

  2. abc 定义 吉

【问题讨论】:

  • 尝试使用用户自定义的拆分函数。
  • 欢迎来到 SO。请浏览论坛并阅读帮助中心以了解如何提问。我们在这里帮助您对代码进行故障排除。请用你所做的更新你的问题,有人可以看看它。

标签: sql sql-server


【解决方案1】:

请使用</RowData></XMLRoot> 如下例:

DECLARE @StringList NVARCHAR(8000)

SET @StringList = 'abc def ghi'

SELECT LTRIM(RTRIM(m.n.value('.[1]', 'varchar(8000)'))) AS NAME
FROM (
    SELECT CAST('<XMLRoot><RowData>' + REPLACE(@StringList, ' ', '</RowData><RowData>') + '</RowData></XMLRoot>' AS XML) AS t
    ) tbl
CROSS APPLY t.nodes('/XMLRoot/RowData') m(n)

【讨论】:

  • 他不希望将单行拆分为多行。他想在同一行中为该行中由空格分隔的每个字符串引入新行。
【解决方案2】:

您可能无法在“结果到网格模式”中查看此内容。 所以,切换到“结果到文本”并运行下面的代码

select REPLACE('abc def ghi',' ',CHAR(13)+CHAR(10))

【讨论】:

  • 请澄清您的问题,您已经在一行中拥有值“abc def ghi”。对吗?你想要 abc 在一行,def 在第二行,ghi 在第三行,对吧?
  • 一行中没有 abc def 在同一行中 ghi 在同一行中。请你可以看到有问题的添加图像。请帮帮我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
相关资源
最近更新 更多