如何以表格格式编写 SQL 查询

问题描述 投票:0回答:2

我想为以下内容编写一个 SQL 查询:

  1. |7|30|0|11|31
  2. |07|30|00|11|13
  3. |30|03
  4. |30|68|71

我希望最终的结果是:

7
30
0
11
31

到目前为止,我编写的代码消除了

|
并将所有内容连接成一个字符串。

SQL语句:

select replace(replace(replace(a_list,'|' ,' '),char(10),''),' ')

结果:73001131

我已经尝试了 SQL 查询的答案,但仍然不起作用。这是它的屏幕截图:

enter image description here

sql t-sql reporting-services
2个回答
0
投票

您可以使用内置的 int string_split (我认为是 SQL2016 起)来执行此操作。如果您有旧版本,请搜索 SQL Server String Split 函数,那里有很多示例。

declare @s varchar(50) = '|7|30|0|11|31'

SELECT * from string_split(@s, '|') where len(value)>0

返回以下行


0
投票

据我了解,您想用新行返回替换该栏。这将实现它:

select replace(a_list, '|',CHAR(10)) as modified from my_data; 
已修改

7
30
0
11
31

但是,它会在第 1 行中创建一个空行,因为所有值都以条形开头。简单修复,我们忽略第一个字符:

select replace(right(a_list, len(a_list) - 1), '|', CHAR(10)) as modified
from my_data
已修改
7
30
0
11
31
© www.soinside.com 2019 - 2024. All rights reserved.