0

我有一个带有一张表的数据库,比如说'tablename'。现在,我想用它包含的文本更新该表的第一列,命名为“文本”,再加上一些新文本,这些文本是通过“表名2”执行的另一个查询的结果。所以,我想要这样的东西:

UPDATE tablename SET text="current text" + (SELECT * FROM tablename2 where ID=12);

如果'text'值为' Result not available'我想追加'  here',使字段值为' Result not available here'

这怎么可能?谢谢

4

2 回答 2

1

尝试连接运算符 (||):

UPDATE tablename SET text='current text'||(SELECT * FROM tablename2 where ID=12);

我不确定,但你应该使用 ' 而不是 " 。

于 2012-07-18T20:34:08.547 回答
1

我可能误解了你的问题,但让我们试试:

http://sqlfiddle.com/#!5/959e5/2

UPDATE Table1
SET text = text || 
    CASE
      WHEN text = 'Result not available' THEN ' here'
      ELSE (SELECT text FROM Table2 where id = 12)
    END;
于 2012-07-18T23:12:23.607 回答