0
Select Substr(<<COLUMN NAME>>, 1,(PosStr(<<COLUMNNAME>>, ' ') -1)) 
From <<TABLE NAME>>;

此处的此语句有助于删除空格及其后面的所有字符-这很好,这就是我要寻找的...但它是一个选择语句,并且仅返回一个列表。

有人可以将其更改为 UPDATE 语句吗?(DB2)


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

NAME

teddy longmore

theadore rosavelt

some body

我想删除第一个空白之后的所有字符

如何使用 SQL 做到这一点?

4

2 回答 2

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;
于 2013-04-16T17:10:55.593 回答
0

语法是

UPDATE mytable
    SET col = expression
    WHERE conditional-expression
于 2013-04-16T18:41:17.237 回答