在sql中生成自定义序列

更多

我想为每条记录生成自定义序列。

示例:如果用户下订单,则订单号应为ORD-17-001

对于下一个订单,它应该像ORD-17-002等等。

17 ”是今年的。所以在明年 2018 年,第一个订单应该是ORD-18-001。

任何人都可以提出解决方案。我不是 sql 命令的专家。

史蒂夫福特

这是使用生成的订单号的答案,这是使用订单的年份和表的标识列的组合生成的(为了保证订单保持一致,假设没有删除)。如果删除可能发生,那么您需要按照 Anthony Horne 的评论遵循触发方法。

设置

CREATE TABLE OrderDetails
(
    ID INT Identity,
    CustomerID INT,
    OrderDate Date,
    CreatedDate DATETIME DEFAULT getdate(),
    OrderValue Decimal(18,2)
)
GO
CREATE VIEW vwOrder
As
    SELECT 
       CustomerId, OrderDate, CreatedDate, OrderValue,
       'ORD-' + 
       RIGHT(CAST(YEAR(OrderDate) AS CHAR(4)),2) + '-' + 
       RIGHT('00' + 
       CAST(ROW_NUMBER() OVER (PARTITION BY YEAR(OrderDate) ORDER BY ID) AS VARCHAR(3)),3) AS OrderNumber
    FROM OrderDetails
GO
INSERT INTO OrderDetails (CustomerId, OrderDate, OrderValue)
VALUES
    (1, '2017-6-12', 20.45),
    (1, '2017-6-12', 30.25),
    (1, '2017-6-13', 10.23),
    (2, '2017-7-12', 5.23),
    (2, '2018-6-01', 55.0),
    (1, '2016-12-01', 22)
GO

询问

SELECT *
FROM VwOrder

结果

CustomerId OrderDate  CreatedDate             OrderValue OrderNumber

1          2016-12-01 2017-06-21 10:19:44.613 22.00      ORD-16-001
1          2017-06-12 2017-06-21 10:19:44.613 20.45      ORD-17-001
1          2017-06-12 2017-06-21 10:19:44.613 30.25      ORD-17-002
1          2017-06-13 2017-06-21 10:19:44.613 10.23      ORD-17-003
2          2017-07-12 2017-06-21 10:19:44.613  5.23      ORD-17-004
2          2018-06-01 2017-06-21 10:19:44.613 55.00      ORD-18-001

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在SQL Server中生成自定义的月初和月底

来自分类Dev

在SQL Server中生成自定义的月初和月底

来自分类Dev

在Verilog中生成自定义波形

来自分类Dev

在Verilog中生成自定义波形

来自分类Dev

如何基于服务调用在WSO2 ESB故障序列中生成自定义错误?

来自分类Dev

在Java中生成自定义文本文件

来自分类Dev

如何在Django中生成自定义表单?

来自分类Dev

在自定义设备邮件程序中生成确认URL

来自分类Dev

如何在Dart中生成自定义json数据?

来自分类Dev

您如何在Django中生成自定义表单?

来自分类Dev

在自定义设备邮件程序中生成确认URL

来自分类Dev

在DRF ModelSerializer中生成自定义响应

来自分类Dev

是否可以在 Java 中生成自定义字符

来自分类Dev

如何在 Eclipse 中生成自定义的 serialVersionUID

来自分类Dev

id 的 JPA Hibernate 自定义序列生成器

来自分类Dev

如何定义自定义函数以在pydatatable中生成摘要统计信息?

来自分类Dev

PostgresSQL自定义序列

来自分类Dev

创建自定义序列

来自分类Dev

在自定义Web应用程序中生成LTPAToken 2

来自分类Dev

如何在Java中生成自定义长度的随机字母数字字符串?

来自分类Dev

Symfony2在自定义文件夹中生成控制器

来自分类Dev

使用CMake使用OpenCV框架编辑自定义路径以在iOS中生成XCODE项目

来自分类Dev

如何引用在我自己的狮身人面像扩展中生成的自定义索引?

来自分类Dev

如何在sq中生成自定义销售分析报告

来自分类Dev

使用PdfDocument在android中生成具有自定义大小的PDF

来自分类Dev

如何在Ionic v4中生成有效的自定义组件?

来自分类Dev

如何在keras中进行自定义回调以在VAE培训中生成示例图像?

来自分类Dev

如何在带有类的React TypeScript中生成自定义URL

来自分类Dev

在自定义Web应用程序中生成LTPAToken 2

Related 相关文章

  1. 1

    在SQL Server中生成自定义的月初和月底

  2. 2

    在SQL Server中生成自定义的月初和月底

  3. 3

    在Verilog中生成自定义波形

  4. 4

    在Verilog中生成自定义波形

  5. 5

    如何基于服务调用在WSO2 ESB故障序列中生成自定义错误?

  6. 6

    在Java中生成自定义文本文件

  7. 7

    如何在Django中生成自定义表单?

  8. 8

    在自定义设备邮件程序中生成确认URL

  9. 9

    如何在Dart中生成自定义json数据?

  10. 10

    您如何在Django中生成自定义表单?

  11. 11

    在自定义设备邮件程序中生成确认URL

  12. 12

    在DRF ModelSerializer中生成自定义响应

  13. 13

    是否可以在 Java 中生成自定义字符

  14. 14

    如何在 Eclipse 中生成自定义的 serialVersionUID

  15. 15

    id 的 JPA Hibernate 自定义序列生成器

  16. 16

    如何定义自定义函数以在pydatatable中生成摘要统计信息?

  17. 17

    PostgresSQL自定义序列

  18. 18

    创建自定义序列

  19. 19

    在自定义Web应用程序中生成LTPAToken 2

  20. 20

    如何在Java中生成自定义长度的随机字母数字字符串?

  21. 21

    Symfony2在自定义文件夹中生成控制器

  22. 22

    使用CMake使用OpenCV框架编辑自定义路径以在iOS中生成XCODE项目

  23. 23

    如何引用在我自己的狮身人面像扩展中生成的自定义索引?

  24. 24

    如何在sq中生成自定义销售分析报告

  25. 25

    使用PdfDocument在android中生成具有自定义大小的PDF

  26. 26

    如何在Ionic v4中生成有效的自定义组件?

  27. 27

    如何在keras中进行自定义回调以在VAE培训中生成示例图像?

  28. 28

    如何在带有类的React TypeScript中生成自定义URL

  29. 29

    在自定义Web应用程序中生成LTPAToken 2

热门标签

归档