我正在使用firebird数据库,我的问题是我的所有数据都存储在'右边的空格中。当我查询某些信息以便在另一个程序(AutoIt)中使用它时,我被这个空格所困。
UPDATE tableName SET columnName = TRIM( columnName )
UPDATE DETECTION SET DNAME = right(TRIM (DNAME));
我尝试过这样的事情,但遗憾的是它没用。
我正在尝试更新我的整个数据库,因为所有修剪权对我来说都没用!
---------------------------- UPDATE --------
我还有问题
它不起作用,也许我只是愚蠢地执行它
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)
Executing...
Done.
287 fetches, 56 marks, 0 reads, 0 writes.
0 inserts, 28 updates, 0 deletes, 0 index, 28 seq.
Delta memory: 8648 bytes.
DETECTION: 28 updates.
28 rows affected directly.
Total execution time: 0.021s
Script execution finished.
Commiting transaction...
Done.
Starting transaction...
Preparing query: UPDATE DETECTION SET DNAME = trim( DNAME)
Prepare time: 0.022s
PLAN (DETECTION NATURAL)
当我尝试
时UPDATE DETECTION SET DNAME = trim(tailing from DNAME)
我收到以下错误
Error: *** IBPP::SQLException ***
Context: Statement::Prepare( UPDATE DETECTION SET DNAME = trim(tailing from DNAME) )
Message: isc_dsql_prepare failed
SQL Message : -206
Column does not belong to referenced table
Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -206
Column unknown
TAILING
At line 1, column 43
即使第一个执行正确它什么也没做,我的查询仍然是最后的白色空间跟踪。
答案 0 :(得分:0)
你应该使用rtrim
UPDATE tableName SET columnName = rtrim( columnName )
答案 1 :(得分:0)
您可以使用尾随:
UPDATE tableName SET columnName = TRIM(trailing from columnName )
默认为BOTH
答案 2 :(得分:0)
第一个数据类型应该是varchar。其次,你应该检查你是否还有尾随空格。通常修剪删除它确定。 选择您知道内容的字段。让我们说玛丽,身份证= 100。 执行以下操作:从表中选择char = lenght(yourfield),其中id = 100 比较:从你的表中选择char_lenght(trim(yourfield)),其中id = 100。 我相信你实际上没有白色空间。