0

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'

しかし、それは機能しません、

誰かがこれを行う方法を知っていますか?

4

3 に答える 3

2

私はあなたがそれをもっと簡単に書くことができると思います:

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

memoフィールドがNULLである可能性があり、結果をNULLにしたくない場合は、次のようにすることができます。

...
SET
  memo = ifnull( memo, '' ) + ' Appended string'
...
于 2012-06-05T18:22:12.087 に答える
1

VARCHAR(MAX)ADSにはデータ型はありませんが、キャストすること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

于 2012-06-05T15:52:21.633 に答える
0

これは私にとってはうまくいきます、あなたはあなたが:で十分な文字を許可することを確認する必要があります VARCHAR()

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

FROM myTable私のプロジェクトではLEFT JOIN、いくつかのテーブルも必要だったので、追加しました。

于 2014-01-03T03:51:03.347 に答える