Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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_String Aggregation - Fatal编程技术网

如何组合表中的多个列并在SQL中创建单独的列

如何组合表中的多个列并在SQL中创建单独的列,sql,sql-server,string-aggregation,Sql,Sql Server,String Aggregation,如何组合表中的多个列,在SQL中创建单独的列,并在数据之间插入单个管道“|”,即使某些列的字段为空 我尝试过使用concat,但如果有空字段,就会得到多个管道 select top 4 concat(code2_1,'|',code2_2,'|',Code2_3,'|',code2_4) from Sourcesql 上面是一张桌子 例如第四排我需要PT01 | PT02 | PT04 我没有得到答案,即使我发现像下面的查询,那么我上面的查询怎么可能是重复的 SELECT

如何组合表中的多个列,在SQL中创建单独的列,并在数据之间插入单个管道“|”,即使某些列的字段为空

我尝试过使用concat,但如果有空字段,就会得到多个管道

  select top 4 concat(code2_1,'|',code2_2,'|',Code2_3,'|',code2_4) from 
  Sourcesql

上面是一张桌子

例如第四排我需要PT01 | PT02 | PT04

我没有得到答案,即使我发现像下面的查询,那么我上面的查询怎么可能是重复的

   SELECT 
STUFF(
 COALESCE('|' + code2_1, '') +COALESCE('|' +code2_2, '') +COALESCE('|'+ 
code2_3, '') +COALESCE('|'+ code2_4, ''),
1, 0, '') AS bar
 FROM Sourcesql

您正在使用哪个数据库?MS SQL。。自己的工作数据库我认为重复链接中投票率最高的答案正好涵盖了您的问题。我同意您的说法,但如果使用旧版本sql then concat_ws的人不起作用,请给我兼容的答案检查重复链接中投票率最高的答案。如果我回答的话,我只是在解释它。