You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL中实现SQL Server式的请求编号格式化计算列?

PostgreSQL 实现指定格式的请求编号计算列

你需要生成TR-0000000001这类格式的请求编号,对应SQL Server里的('TR-'+format([Id],'0000000000')),在PostgreSQL里可以通过以下两种常用方法实现:

方法一:使用lpad函数

lpad函数可将字符串填充到指定长度,不足部分用指定字符补全。把Id转为文本后,补零到10位再拼接前缀:

'TR-' || lpad(Id::text, 10, '0')
  • Id::text:将数值类型的Id转换为文本格式
  • 10:数字部分的目标总长度
  • '0':用于填充空位的字符

方法二:使用to_char函数

to_char是PostgreSQL中专门用于格式化数值/日期的函数,通过格式符指定补零规则:

'TR-' || to_char(Id, 'FM0000000000')
  • FM:消除格式转换后可能出现的前导空格
  • 0000000000:指定生成10位数字,不足位自动用0填充

创建带计算列的表示例

如果是新建表,可直接在表定义中添加计算列:

CREATE TABLE requests (
    Id SERIAL PRIMARY KEY,
    request_number TEXT GENERATED ALWAYS AS ('TR-' || lpad(Id::text, 10, '0')) STORED
);

为现有表添加计算列示例

若要给已存在的表新增该计算列,执行以下语句:

ALTER TABLE requests 
ADD COLUMN request_number TEXT GENERATED ALWAYS AS ('TR-' || to_char(Id, 'FM0000000000')) STORED;

两种方法都能生成符合要求的TR-前缀加10位补零数字的请求编号,效果完全一致。

内容的提问来源于stack exchange,提问作者Ahmed Mostafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:10:25