我正在使用 Advantage Database Server 9.10,并且我想将文本附加到备注字段。
我试过这个方法
UPDATE
myTable
SET
memo = cast(memo as SQL_VARCHAR(max))
+ cast(' Appended string' as SQL_VARCHAR(max))
WHERE
pk = '80'
但它不起作用,
有人知道该怎么做吗?
我正在使用 Advantage Database Server 9.10,并且我想将文本附加到备注字段。
我试过这个方法
UPDATE
myTable
SET
memo = cast(memo as SQL_VARCHAR(max))
+ cast(' Appended string' as SQL_VARCHAR(max))
WHERE
pk = '80'
但它不起作用,
有人知道该怎么做吗?
我认为你可以更简单地写成:
UPDATE
myTable
SET
memo = memo + ' Appended string'
WHERE
pk = '80'
如果该memo
字段可能为 NULL 并且您不希望结果为 NULL,则可以执行以下操作:
...
SET
memo = ifnull( memo, '' ) + ' Appended string'
...
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
这对我有用,你只需要确保你允许足够的字符 VARCHAR()
:
UPDATE
myTable
SET
memo = CONVERT(VARCHAR(8000),memo) + ' Appended String'
FROM
myTable
WHERE
pk = '80'
我添加了FROM myTable
因为在我的项目中我还必须添加LEFT JOIN
几个表。