我在试图清除领先,并从一个充满的价格(使用NVARCHAR由于数据从多个操作系统与奇怪的字符输入)一个nvarchar(MAX)列尾部的空格的过程。
在这一点上我有一个T-SQL命令,可以从静态的价格除去前/后间隔。 然而,当涉及到利用此相同的命令删除所有的价格,我很为难。
下面是我用来去除特定的价格静态脚本:
UPDATE *tablename* set *columnname* = LTRIM(RTRIM(2.50)) WHERE cost = '2.50 ';
这里就是我试图删除所有尾随空格:
UPDATE *tablename* set *columnname* LIKE LTRIM(RTRIM('[.]')) WHERE cost LIKE '[.] ';
我也尝试的不同%的varations随机字符,但在这一点上,我纺纱我的车轮。
什么我希望做到的,是运行一个简单的命令起飞都在此列中的每个单元的开头和结尾的空格,而无需修改任何实际列数据。
要删除左/右空间,使用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码。
要删除空格......请使用LTRIM / RTRIM LTRIM(字符串)RTRIM(字符串),其被传递给功能可以是列名,变量,文字串或用户定义的函数或标量的输出的字符串参数查询。
SELECT LTRIM(' spaces at start')
SELECT RTRIM(FirstName) FROM Customers
了解更多: http://rockingshani.blogspot.com/p/sq.html#ixzz33SrLQ4Wi
SELECT RTRIM(' Author ') AS Name;
输出将是没有任何尾随空格。
名称------“作者”
我理解这个问题是SQL Server 2012,但如果用于SQL Server 2017年或SQL Azure的相同的情况下,你可以按照以下直接使用修剪:
UPDATE *tablename*
SET *columnname* = trim(*columnname*);
的LTRIM函数以除去前导空格和RTRIM函数从字符串变量除去尾随空格。 它使用Trim函数删除这两种类型的空间,前,后弦的空格表示。
SELECT LTRIM(RTRIM(REVERSE( 'NEXT LEVEL EMPLOYEE')))