我正在使用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'
,但它不工作,
有人知道如何做到這一點?
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
我覺得你可以更簡單地寫:
UPDATE
myTable
SET
memo = memo + ' Appended string'
WHERE
pk = '80'
如果memo
字段可能爲空,你不希望的結果是NULL,你可以做這樣的事情:
...
SET
memo = ifnull(memo, '') + ' Appended string'
...
這個工作對我來說,你只需要確保你允許在VARCHAR()
足夠的字符:
UPDATE
myTable
SET
memo = CONVERT(VARCHAR(8000),memo) + ' Appended String'
FROM
myTable
WHERE
pk = '80'
我,因爲在我的項目,我不得不LEFT JOIN
情侶表也增加了FROM myTable
。
不工作=什麼。無效的sql沒有對數據進行更改,備忘錄不會以您的預期結束? –
就是無效的sql。我想這個,假設備忘錄字段(備忘錄類型)具有「ABC」值,並且我想在'ABC'後追加到'DEF',那麼我應該如何爲此編寫查詢? –
不知道自己有什麼優勢,但其他一些boyz已經權衡了。不能說我喜歡這個想法。如果我使用的是Text/Image/Blob,我會盡我最大的努力來操縱它的客戶端。編碼會導致這種方法的一些心悸。 –