如果用sqlserver该怎么实现按指定的格式实现流水号?
发布网友
发布时间:2022-04-11 15:18
我来回答
共1个回答
热心网友
时间:2022-04-11 16:47
SQL Server 2012 版本, 新增了 序列号的功能。
可是实现类似的处理。
如果是 SQL Server 2008 或者以下版本的, 可以使用 identity + 计算列的处理机制。
oracle:
select 'P'||trim(to_char(patient_new_id.nextval,'009999999')) patient_id from al
'P' 是 固定字符串.
|| 是 连接字符串
trim 是去除 字符串前后的空格
to_char 是把数字类型的, 转换为 字符类型
patient_new_id.nextval 这里的 patient_new_id 应该是一个序列号, nextval 是获取序列号的下一个值。
'009999999' 是 TO_CHAR 函数的 格式化字符串, 0 意味这如果数字不到这一位,那么也要显示0。
patient_id 是前面那个 'P' || ...... 查询结果的 别名。
from al 是因为 Oracle 不允许你像 sql server 那样 select 1 这样的处理。 必须要 from 一个表, 因此只好 from 一个 只有1行数据的系统表。