删除所有空格并将多行合并为 SQL 中的单行

     2023-05-08     216

关键词:

【中文标题】删除所有空格并将多行合并为 SQL 中的单行【英文标题】:Remove all spaces and combine multiple lines to single line in SQL 【发布时间】:2017-09-14 17:34:56 【问题描述】:

在 SQL Server 2014 中从字符串中删除所有空格的最佳方法是什么?

我的字符串是:

Maximize your productivity for building engaging,

 beautiful web mapping applications

尝试删除字符串之间的输入和制表符空格以及单词之间的 1 个空格。结果应该是这样的:

Maximize your productivity for building engaging, beautiful web mapping applications

【问题讨论】:

这是一个可重用的用户定义函数的好候选。 查看更新的答案。我删除了 32。没必要 【参考方案1】:

你可以使用replace(),但是有点棘手:

select replace(replace(replace(replace(replace(col, ' ', '<>'
                                              ), '
', '<>'
                                      ), ' ', '<>'  -- tab goes here
                              ), '><', ''
                       ), '<>', ' '
               )
from t;

这个想法是将一个空格替换为&lt;&gt;,然后删除所有&gt;&lt;s,只留下一个。例如:

a    b c     -- original data with three spaces and one space
a<><><>b<>c  -- after replacing spaces with <>
a<>b<>c      -- after removing ><
a b c        -- after replacing <> with a space

【讨论】:

它适用于例如 X 输入 y 字符串,但对于 X 输入 Y 输入 Z 不起作用【参考方案2】:

如果打开一个 UDF,下面将删除所有控制字符和重复空格。

删除重复空格的灵感来自于几个月前 Gordon 的 回答(OK 被盗)。

示例

Declare @S varchar(max) = 'Maximize your productivity for building engaging,

 beautiful web mapping applications'


Select [dbo].[svf-Str-Strip-Control](@S)

返回

Maximize your productivity for building engaging, beautiful web mapping applications

有兴趣的 UDF

CREATE FUNCTION [dbo].[svf-Str-Strip-Control](@S varchar(max))
Returns varchar(max)
Begin
    Select @S=Replace(@S,char(n),' ')
     From  (values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25),(26),(27),(28),(29),(30),(31) ) N(n)

    Return LTrim(RTrim(Replace(Replace(Replace(@S,' ','><'),'<>',''),'><',' ')))
End
--Select [dbo].[svf-Str-Strip-Control]('Michael        '+char(13)+char(10)+'LastName')  --Returns: Michael LastName

【讨论】:

删除了值 (32)... 不需要/多余。

将多行合并为单行并在DB2中使用sql、Function或...填充缺失值

】将多行合并为单行并在DB2中使用sql、Function或...填充缺失值【英文标题】:Combinemultirowtosinglerowandfillinthemissingvaluebyusingsql,Functionor...inDB2【发布时间】:2019-11-2808:05:51【问题描述】:我需要你的帮助,我下面有原始数据。StudentNa... 查看详情

如何根据一个字段是不是包含oracle sql中的逗号分隔字符串将单行拆分为多行?

...字段是不是包含oraclesql中的逗号分隔字符串将单行拆分为多行?【英文标题】:Howtosplitsinglerowsintomultiplerowsdependingonwhetheronefieldcontainscommaseparatedstringinoraclesql?如何根据一个字段是否包含oraclesql中的逗号分隔字符串将单行拆分为多... 查看详情

java单行注释替换为多行注释(代码片段)

...1a;//+这个是匹配双斜杠加一个空格(.*$)匹配当前剩余的所有替换的时候$0是//$1是注释内容转载:idea将单行注释替换为多行注释_AC即性感-CSDN博客_idea单行注释多行注释匹配正则//+(.*$)替换正则/**\\n 查看详情

SSIS 在不使用 SQL 的情况下将多行合并并连接成单行

】SSIS在不使用SQL的情况下将多行合并并连接成单行【英文标题】:SSISconsolidateandconcatenatemultiplerowsintosinglerowswithoutusingSQL【发布时间】:2020-09-1609:44:54【问题描述】:我正在尝试完成一些在SQL中很容易完成的事情,但在不使用SQL... 查看详情

如何将多行合并为单行,但仅适用于由空行分隔的行块

】如何将多行合并为单行,但仅适用于由空行分隔的行块【英文标题】:Howtomergemultiplelinesintosinglelinebutonlyforblockoflinesseparatedbyblankline【发布时间】:2019-08-2202:29:01【问题描述】:我正在尝试将多行合并为单行,但有附加条件。... 查看详情

从源文件中删除所有注释(单行/多行)和空行[重复]

】从源文件中删除所有注释(单行/多行)和空行[重复]【英文标题】:Removeallcomment(single-/multi-line)&blanklinesfromsourcefile[duplicate]【发布时间】:2012-02-2503:45:39【问题描述】:如何从C#源文件中删除所有cmets和空行。请记住,可能... 查看详情

PostgreSQL:如何将多行的值放在不同的列中,并将所有值合并到一行中?

】PostgreSQL:如何将多行的值放在不同的列中,并将所有值合并到一行中?【英文标题】:PostgreSQL:HowdoItakemultiplerowswithvaluesindifferentcolumnsandcombineintoonerowwithallthevaluesononeline?【发布时间】:2018-11-3002:32:08【问题描述】:这是我目前... 查看详情

SQL中如何将单行数据拆分成多行?

】SQL中如何将单行数据拆分成多行?【英文标题】:HowtosplitthedatainasinglerowintomultiplerowsinSQL?【发布时间】:2021-08-1009:43:53【问题描述】:我有一个格式如下的表格ProjectIDLocationID1[1,2,3,4]2[2,3]我可以将LocationID列中的数据拆分为如下... 查看详情

将单行转换为多行 Bigquery SQL

】将单行转换为多行BigquerySQL【英文标题】:ConvertsinglerowintomultiplerowsBigquerySQL【发布时间】:2020-04-0621:03:31【问题描述】:在bigQuerySQL中将一行转换为多行。行数取决于特定的列值(在本例中为delta_unit/60的值):源表:IDtimedelta_... 查看详情

选择独立行并将它们显示为单行 (ORACLE SQL)

】选择独立行并将它们显示为单行(ORACLESQL)【英文标题】:Selectingindependentrowsanddisplayingthemintoasinglerow(ORACLESQL)【发布时间】:2016-10-0607:28:33【问题描述】:我有一个名为requesttool.request_detail的表,用于存储由REQUEST_ID列中的值标识... 查看详情

将单行拆分为多行 - SQL Server Management Studio 2018

】将单行拆分为多行-SQLServerManagementStudio2018【英文标题】:Splitasinglerowinmultirows-SQLServerManagementStudio2018【发布时间】:2019-07-1706:26:20【问题描述】:我试图将单行拆分为多行但没有成功。任何帮助或提示将不胜感激。表结构结果... 查看详情

如何在 pandas 中仅内爆(explode 的反向)非空值。使用 pandas group by 将多行合并为单行

...pandas中仅内爆(explode的反向)非空值。使用pandasgroupby将多行合并为单行【英文标题】:Howtoimplode(reverseofexplode)onlynon-nullvaluesinpandas.Mergemultiplerowsintosinglerowusingpandasgroupby【发布时间】:2021-11-0903:30:54【问题描述】:我正在研究Pyth... 查看详情

从 SQL Server 中的字符串中删除所有空格

】从SQLServer中的字符串中删除所有空格【英文标题】:RemoveallspacesfromastringinSQLServer【发布时间】:2012-05-1300:14:06【问题描述】:在SQLServer2008中从字符串中删除所有空格的最佳方法是什么?LTRIM(RTRIM(\'ab\'))将删除字符串左右两侧... 查看详情

利用oracle分析函数实现多行数据合并为一行

...分析函数row_number()和sys_connect_by_path来进行sql语句层面的多行到单行的合并并且效率会非常高  基本思路  对deptno进行row_number()按ename排位并打上排位号  selectdeptnoenamerow_number()over(partitionbydeptnoorderbydeptnoename)rank  fromempord... 查看详情

如何在 Excel 中将单行拆分为多行(如 SQL 逆透视操作)?

】如何在Excel中将单行拆分为多行(如SQL逆透视操作)?【英文标题】:HowtosplitasinglelineintomultiplelinesinExcel(likeanSQLunpivotoperation)?【发布时间】:2017-09-1417:06:02【问题描述】:我有一张Excel表格,里面有很多数据。我只用几行数据... 查看详情

合并R中的多行

...个参与者有两行一行将有他们对标记为“两者”的条件的所有答案和对条件“x”的答案另一行将有他们对条件的所有答案都标记为“ 查看详情

sql将查询结果为多行一列合并为一行一列

使用sql stuff函数/*        stuff(param1,startIndex,length,param2)说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。*/ 示例:select po 查看详情

处理单行的函数

...es03_02.sql中。3.运行les03_02.sql中的查询。4.查询出雇员表中所有员工的姓名、入职时间和工资调整日期(工作6个月之后的第一个星期一)。其格式如下:“1981-09-23”。5.查出每 查看详情