我有一张名为sales的表。在此表中,我有一列Invoice_Number。我想要实现的是以字母数字顺序获得发票号,即一个静态字母,然后是一个像A1,A2,A3 ......等变化的数字。我不想像其他例子中所见那样将A改为B.
我可以通过此查询获得数字增量:
Select IsNull(MAX([Invoice_Number] + 1), 1) from sales
但它不能在它之前添加字母。
感谢。
答案 0 :(得分:1)
尝试使用类似的转换来返回varchar,让我知道这是否有帮助:)。
<script nomodule defer...
答案 1 :(得分:1)
您可以将现有的identity column用作种子。将其与computed column结合使用即可返回InvoiceNumber
。
-- Combine a seed with a computed column.
CREATE TABLE #Example
(
Seed INT IDENTITY(1,1),
InvoiceNumber AS 'A' + CAST(Seed AS VARCHAR(5)),
Customer VARCHAR(25)
);
-- Add some sample records.
INSERT INTO #Example
(
Customer
)
VALUES
('A PLC'),
('B PLC'),
('C LTD')
;
-- Returns InvoiceNumbers A1, A2 & A3.
SELECT
*
FROM
#Example
;