我有一张名为'客户'的表。
此表包含名为“CustomerNo”的每个客户的唯一标识字段。 它应采用以下格式:首先是字母表,从A-Z开始。
然后是一个从1-9999开始的四位数字,下一个是从1-999开始的三位数字。这是一个独特的字段。所以它不会在表Customer中重复。
例如:A1000-100。
是否有任何函数可以生成此格式?
Table structure
-----------------------
CustomerID CustomerName CustomerNo
1 John A1000-100
2 Sajan A1001-100
答案 0 :(得分:2)
您可以使用普通的自动递增标识列和以下公式(可能在派生列中)将其映射到显示格式。
CHAR((id-1)/9999/999 + 65) +
RIGHT('0000' + CAST(1 + (id-1)%(999*9999)/999 AS VARCHAR(4)),4) +
'-' +
RIGHT('000' + CAST(1 + (id-1)%999 AS VARCHAR(3)),3)
这避免了您必须自己处理任何并发问题。