sqlserver数据库中如何将每条数据开头的空格去掉?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver数据库中如何将每条数据开头的空格去掉?相关的知识,希望对你有一定的参考价值。

例如 在image表中, 有个url 大概有1000多条数据吧, 由于在插入数据的时候失误, 将每条数据开头加了一个空格 例如本是"../image/1.jpg" 结果添加成" ../image/1.jpg"
这样一条一条修改太慢了, 如何能批量将数据开头的只要是空格都去掉,用replace(url,' ','' )这个是把所有空格都去掉了,我只想去掉开头的空格, 知道的请帮助一下

    去除空格函数,ltrim,rtrim

    ltrim() 函数从字符串左侧删除空格或其他预定义字符

    rtrim() 函数从字符串右侧删除空格或其他预定义字符

    使用SQL 如下:

    declare @T nvarchar(5)

    set @T='  123' 前面二位空格

    select @T 结果:'  123'

    select ltrim(@T) 结果:'123'

参考技术A 使用 ltrim() 方法去掉字符串开头的空格, 使用 rtrim()方法去掉字符串结尾的空格

select ltrim(url) as url_Demo from 表名本回答被提问者采纳
参考技术B 可以同时使用,ltrim() / rtrim()去除字段两头的空格:
PS.
update 表名 set ltrim(rtrim(字段));
参考技术C update 表 set url=ltrim(url)追问

谢谢, 再请问下, 如何去掉末尾的空格

Qt SQLite 批量插入优化(SQLite默认将每条语句看成单独的事务)good

使用SQLite存储数据时发现插入速度太慢,程序跑了将近五分钟才插入了不到三千条。上网查资料才发现,SQLite这种文件数据库与MySql机制不一样,每条事务都有打开和关闭文件的步骤,SQLite默认将每条语句看成单独的事务。当我逐条插入数据时,就会出现大量的文件IO操作,效率自然不高。需要将多个插入操作放到一个事务中,就可以显著提升插入效率。

QT中使用事务的方法如下:

QSqlDatabase app_database;
// 设置数据库参数
// ...
app_database.transaction(); // 开始一个事务
// 执行SQL操作
// ...
app_database.commit(); // 提交

但项目中需要获取插入后自动生成的id。逐条插入时,可以用QSqlQuery::lastInsertId()方法获取,但使用事务进行批量插入后,就无法用lastInsertId(),因为我们需要获取插入数据的ID集。为了将ID赋给对象,还需要确保与对象的一一对应关系。

因为项目中父对象包含多个子对象,保存在QVector容器中,所以我利用QVector的有序性来保证对象的对应关系。将子对象在QVector中的下标index保存在数据库中,批量插入子对象后,将所有子对象的id和index一同取出,根据index设置相应对象的id。这样,就可以用事务批量插入子对象,再填充子对象的ID。

http://windrocblog.sinaapp.com/?p=835

以上是关于sqlserver数据库中如何将每条数据开头的空格去掉?的主要内容,如果未能解决你的问题,请参考以下文章

如何将每条推文分成不同的引导卡

为啥 Spark Streaming 将每条 Kafka 消息保存为单个文件?

如何将每条记录与另一条记录进行比较(名称反转问题)并删除重复记录?

用word通配符添加空格

sql中,如何去掉后面的零?

更改 WinForms RichTextBox 中文本的颜色 [重复]