0

WIDGETそれぞれ独自の 8 桁のバーコード番号が VARCHAR フィールドに格納されているアイテムのテーブル ( と呼びましょう) があります ( と呼びましょうBARCODE。テーブルの主キーは別の整数列にありますID)。私の問題は、先行ゼロを含む行とそうでない行があることです。一貫性を保つために、既存のすべてのレコード (全部で数百) を 8 桁に更新したいと考えています。

  • 100000001
  • 23400000234
  • 567800005678
  • 0000901200009012

FrontBase が SQL-92 に準拠していることは知っていますが、SQL-92 には文字列の左パディング専用の機能はありません。私はすでに解決策を思いつきましたが、この質問を投稿して、誰かが私よりも良い方法を考えられるかどうかを確認します。

4

1 に答える 1

0

これはうまくいくようです(少なくともFrontBase 5.2.9では):

UPDATE WIDGET SET BARCODE =
SUBSTRING('00000000' || BARCODE FROM CHAR_LENGTH(BARCODE) + 1);
于 2013-01-14T00:42:34.907 に答える