sql-server – 如何使用LTRIM / RTRIM搜索和替换前导/尾随空格?
发布时间:2020-12-12 08:53:09 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试从充满价格的NVARCHAR(MAX)列中清除前导和尾随空格(由于从具有奇数字符的多个操作系统导入数据而使用NVARCHAR). 此时我有一个t-sql命令可以从静态价格中删除前导/尾随空格.但是,当谈到利用同样的命令去除所有价格时,我很难过. 这是我用来删除特定价
我正在尝试从充满价格的NVARCHAR(MAX)列中清除前导和尾随空格(由于从具有奇数字符的多个操作系统导入数据而使用NVARCHAR).
此时我有一个t-sql命令可以从静态价格中删除前导/尾随空格.但是,当谈到利用同样的命令去除所有价格时,我很难过. 这是我用来删除特定价格的静态脚本: UPDATE *tablename* set *columnname* = LTRIM(RTRIM(2.50)) WHERE cost = '2.50 '; 这是我试图删除所有尾随空格: UPDATE *tablename* set *columnname* LIKE LTRIM(RTRIM('[.]')) WHERE cost LIKE '[.] '; 我也尝试过%随机字符的不同变化,但此时我正在旋转我的车轮. 我希望实现的是运行一个简单的命令,该命令取消此列的每个单元格中的所有前导和尾随空格,而不修改任何实际的列数据. 解决方法要从左/右删除空格,请使用LTRIM / RTRIM.你有什么UPDATE *tablename* SET *columnname* = LTRIM(RTRIM(*columnname*)); 会对所有行都有效.要在不需要更新时最小化更新,更新代码将保持不变,但WHERE子句中的LIKE表达式将是 UPDATE [tablename] SET [columnname] = LTRIM(RTRIM([columnname])) WHERE 32 in (ASCII([columname]),ASCII(REVERSE([columname]))); 注意:32是空格字符的ascii代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |