Sql 从右边修剪空白

Sql 从右边修剪空白,sql,firebird,trim,Sql,Firebird,Trim,我正在使用firebird数据库,我的问题是,我所有的数据都存储在“右侧”的空白处。当我查询一些信息以便在另一个程序(AutoIt)中使用它时,我被空格卡住了 UPDATE tableName SET columnName = TRIM( columnName ) UPDATE DETECTION SET DNAME = right(TRIM (DNAME)); 不幸的是,我尝试过这样的事情,但毫无用处 我正在尝试更新我的整个数据库,因为所有的修剪对我来说都是无用的 -----------

我正在使用firebird数据库,我的问题是,我所有的数据都存储在“右侧”的空白处。当我查询一些信息以便在另一个程序(AutoIt)中使用它时,我被空格卡住了

UPDATE tableName SET columnName = TRIM( columnName )
UPDATE DETECTION SET DNAME =  right(TRIM  (DNAME));
不幸的是,我尝试过这样的事情,但毫无用处

我正在尝试更新我的整个数据库,因为所有的修剪对我来说都是无用的

----------------------------更新--------
我仍然有问题

它不起作用,也许我只是愚蠢地正确地执行它

SELECT a.DNAME, a.DTYPE, a.WINNAME, a.AREA, a.COLOR, a.MOUSE
FROM DETECTION a -- this is my table
当我尝试时

UPDATE DETECTION SET DNAME = trim( DNAME)
正在执行。。。
完成。
287次回迁,56次标记,0次读取,0次写入。
0次插入,28次更新,0次删除,0次索引,28次序列。
增量内存:8648字节。
检测:28次更新。
28行直接受影响。
总执行时间:0.021s
脚本执行完成。
委托交易。。。
完成。
正在启动事务。。。
准备查询:更新检测集DNAME=trim(DNAME)
准备时间:0.022s
计划(检测自然)
当我尝试

UPDATE DETECTION SET DNAME = trim(tailing from DNAME) 
我得到以下错误

错误:**IBPP::SQLException***
上下文:语句::Prepare(更新检测集DNAME=trim(从DNAME开始跟踪))
消息:isc_dsql_准备失败
SQL消息:-206
列不属于引用的表
发动机代码:335544569
引擎消息:
动态SQL错误
SQL错误代码=-206
未知列
尾随
在第1行第43列
即使第一个正确执行,但它什么也不做,我的查询仍然是为,末尾有空格trail。

您应该使用rtrim

UPDATE tableName SET columnName = rtrim( columnName )
你应该使用rtrim

UPDATE tableName SET columnName = rtrim( columnName )
您可以使用以下命令:

UPDATE tableName SET columnName = TRIM(trailing from  columnName )
默认值是两者兼而有之

您可以使用尾随:

UPDATE tableName SET columnName = TRIM(trailing from  columnName )
默认值是两者兼而有之


第一个数据类型应该是varchar。其次,您应该检查是否仍然有尾随空格。通常修剪可以去除它。 选择一个你知道内容的字段。比方说玛丽,身份证=100。 执行以下操作:从id=100的表中选择字符长度(yourfield) 与比较:从id=100的表格中选择char_length(修剪(yourfield))。
我相信您实际上没有空格。

第一个数据类型应该是varchar。其次,您应该检查是否仍然有尾随空格。通常修剪可以去除它。 选择一个你知道内容的字段。比方说玛丽,身份证=100。 执行以下操作:从id=100的表中选择字符长度(yourfield) 与比较:从id=100的表格中选择char_length(修剪(yourfield))。
我相信您实际上没有空格。

您确定您拥有的是空格而不是制表符吗?如果是这样,trim应该执行trickWhat是这些列的数据类型?如果是CHAR,则比预期的空白要多,如果不需要,则应使用VARCHAR。顺便说一句,TRIM中的关键字是尾随的(带有一个R)。你确定你拥有的是空格而不是制表符吗?如果是这样,trim应该执行trickWhat是这些列的数据类型?如果是CHAR,则比预期的空白要多,如果不需要,则应使用VARCHAR。顺便说一句,TRIM中的关键字是尾随的(带有R)。Firebird没有名为
rtrim
(至少不是内置的)。@markrottveel我发现这是肯定的,但它不是内置函数,它是一个UDF,您需要显式声明它才能使用它(与内置函数相反).Firebird没有名为
rtrim
(至少没有内置)的函数。@MarkRotteveel我发现这是肯定的,但它不是内置函数,它是一个UDF,您需要显式声明它才能使用它(与内置函数相反)。