我正在使用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'
但它不起作用,
有人知道怎么做吗?
答案 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_VARCHAR
或SQL_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
几张表。