如何选择多行文本作为不同的单行文本?

时间:2014-06-27 10:17:15

标签: sql sql-server database sql-server-2008 sql-server-2005

  

UPDATE TBL SET Col1='multi \r\nline \r\ntext'

我使用上述查询将col1值设置为多行值。

我希望将col1选为3行。

我想输出

Select col1 from tbl

COL1


线

文本

2 个答案:

答案 0 :(得分:2)

要将此字符串与我们使用nodes() Method of XML data type的元素分开。 要使用它,我们应该将此字符串转换为XML格式。只需将'\r\n'替换为'</X><X>'

即可
WITH T AS
(
  SELECT ID,
  CAST('<X>'+REPLACE(col1,'\r\n','</X><X>')+'</X>' as XML) as xmldata 
  FROM TBL
  )

SELECT T.ID,
       a.c.value('data(.)', 'VARCHAR(100)') as col1 
FROM   T
CROSS APPLY xmldata.nodes('X') as a(c) 

SQLFiddle demo

答案 1 :(得分:0)

尝试插入

insert into table
Select a.na 
from table 
cross apply(Select 'multi' na union Select 'Line' union Select 'Text')a