2013-04-16 50 views
0
Select Substr(<<COLUMN NAME>>, 1,(PosStr(<<COLUMNNAME>>, ' ') -1)) 
From <<TABLE NAME>>; 

這裏這個聲明有助於消除空白區域,並在其後的所有字符 - 這是很好的,這就是我要找的...但它是一種選擇statment,並且只返回一個列表。DB2更新 - 刪除後的空白中的所有字符

有人可以請將此更改爲UPDATE語句嗎? (DB2)


更多信息......如果我有例如,

NAME 

teddy longmore 

theadore rosavelt 

some body 

,我想刪除所有的字符後的第一個WHITESPACE

我該怎麼辦使用SQL?

回答

1

你幾乎已經存在,只是增加你已經有了命令的UPDATE

UPDATE your_table 
    SET name = SUBSTR(name, 1,(POSSTR(name, ' ') -1)); 

示範:

DECLARE GLOBAL TEMPORARY TABLE SESSION.TEXT_TEST (
    NAME VARCHAR(50) 
) ON COMMIT PRESERVE ROWS; 

INSERT INTO SESSION.TEXT_TEST (
    SELECT 'teddy longmore' FROM SYSIBM.SYSDUMMY1 UNION ALL 
    SELECT 'theadore rosavelt' FROM SYSIBM.SYSDUMMY1 UNION ALL 
    SELECT 'some body' FROM SYSIBM.SYSDUMMY1 
); 

SELECT name 
FROM SESSION.TEXT_TEST; 

UPDATE SESSION.TEXT_TEST 
    SET NAME = SUBSTR(name, 1,(POSSTR(name, ' ') -1)); 

SELECT name 
FROM SESSION.TEXT_TEST; 
+0

爲什麼你會插入SELECT UNION SELECT UNION SELECT,當VALUES會工作得如此簡單(並且效率更高) oo) – WarrenT

+0

@WarrenT:hah,最近一直在使用大型機DB2,其中來自values子句的插入不可用......這對LUW來說會很棒(我不使用iSeries,所以我不能談論這個) – bhamby

+0

看起來你已經[INSERT by VALUE](http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc% 2Ftpc%2Fdb2z_sql_insert.htm),至少在v10中。我不確定它有多遠。在我,我們可以使用VALUES(row),(row),...我認爲LUW也是如此。我們常常覺得自己就像被遺忘的孩子,但事實證明,我們有一些更酷的東西,你們不會。所以我想它比有時候感覺更平均。 ;-) – WarrenT

0

語法將

UPDATE mytable 
    SET col = expression 
    WHERE conditional-expression 
相關問題