Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何选择多行文字作为不同的单行文字?_Sql_Sql Server_Database_Sql Server 2008_Sql Server 2005 - Fatal编程技术网

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

Sql 如何选择多行文字作为不同的单行文字?,sql,sql-server,database,sql-server-2008,sql-server-2005,Sql,Sql Server,Database,Sql Server 2008,Sql Server 2005,更新TBL SET Col1='multi\r\nline\r\ntext' 我使用上面的查询将col1值设置为多行值 我希望选择col1作为3行 我想要你的输出 从tbl中选择col1 像 可乐 多重 线 text请尝试插入此文本 insert into table Select a.na from table cross apply(Select 'multi' na union Select 'Line' union Select 'Text')a 将此字符串与我们使用的元素分开。

更新TBL SET Col1='multi\r\nline\r\ntext'

我使用上面的查询将col1值设置为多行值

我希望选择col1作为3行

我想要你的输出

从tbl中选择col1

可乐

多重

线

text

请尝试插入此文本

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

将此字符串与我们使用的元素分开。 要使用它,我们应该将该字符串转换为XML格式。只需将“\r\n”替换为:


你想更新或插入我正在做插入和更新,我的查询是如何在不同的行中选择它如果是插入,这是可能的,我可以给你查询,因为更新,因为它在现有行上做的,据我所知,这是不可能的,因为它必须插入额外的两行用于该目的。
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)