我有一个项目表(让我们称之为WIDGET
),每个项目都有自己的八位数条形码编号存储在VARCHAR字段中(我们称之为BARCODE
;表的主键是一个单独的整数列ID
)。我的问题是有些行包含前导零,而有些行则没有。为了保持一致,我想将所有现有记录(总共几百个)更新为八位。
1
→00000001
234
→00000234
5678
→00005678
00009012
→00009012
我知道FrontBase符合SQL-92,但SQL-92没有专门用于左填充字符串的功能。我已经提出了一个解决方案,但是我发布了这个问题,看看是否有人能想到比我更好的方法。
答案 0 :(得分:0)
这似乎有效(至少在FrontBase 5.2.9中):
UPDATE WIDGET SET BARCODE =
SUBSTRING('00000000' || BARCODE FROM CHAR_LENGTH(BARCODE) + 1);