如何将文本附加到备注字段?

时间:2012-06-05 13:12:39

标签: sql type-conversion advantage-database-server

我正在使用Advantage Database Server 9.10,我想在Memo字段中添加一个文本。

我试过这种方式,

UPDATE 
  myTable 
SET 
  memo =   cast(memo as SQL_VARCHAR(max)) 
         + cast(' Appended string' as SQL_VARCHAR(max)) 
WHERE 
  pk = '80'

但它不起作用,

有人知道怎么做吗?

3 个答案:

答案 0 :(得分:2)

我认为你可以更简单地写出来:

UPDATE 
  myTable 
SET 
  memo = memo + ' Appended string' 
WHERE 
  pk = '80'

如果memo字段可能为NULL并且您不希望结果为NULL,则可以执行以下操作:

...
SET
  memo = ifnull( memo, '' ) + ' Appended string'
...

答案 1 :(得分:1)

ADS中没有VARCHAR(MAX)数据类型,但您可以转换为SQL_VARCHARSQL_CHAR

正确的语法:

UPDATE
  myTable 
SET 
   memo =   cast(memo as SQL_VARCHAR) 
          + cast(' Appended string' as SQL_VARCHAR) 
WHERE 
   pk = '80'

您可以在广告文档中找到CAST和CONVERT的有效数据类型列表:

http://devzone.advantagedatabase.com/dz/webhelp/Advantage10.1/master_miscellaneous_functions.htm

答案 2 :(得分:0)

这对我有用,你必须确保在VARCHAR()中允许足够的字符:

UPDATE 
   myTable 
SET 
   memo = CONVERT(VARCHAR(8000),memo) + ' Appended String'
FROM 
   myTable
WHERE 
   pk = '80' 

我添加了FROM myTable,因为在我的项目中我还需要LEFT JOIN几张表。