首页 > 解决方案 > If else 使用大小写返回值

问题描述

我正在尝试使用CASE. 如果没有记录,那就做0+1。否则,只取最后一条记录+1。第一次尝试我使用ISNULL(statement,0). 但它没有其他声明。

然后我在StackOverflow上看到了很多其他的case语句的例子,但我似乎不明白如何实现它

INSERT INTO TICKET_SALES (
    TRXDATE, 
    KIOSKID, 
    BOOKINGREFERENCENUM, 
)
VALUES (
    '2019-01-18 16:59:29',
    'KIOSK1',
    ((SELECT TOP 1 BOOKINGREFERENCENUM FROM TICKET_SALES ORDER BY BOOKINGREFERENCENUM DESC)+1),
);

标签: sqlsql-server

解决方案


只需创建表Idetitity(1, 1)

CREATE table TicketSales
(
       TrxDate DATETIME
    ,  KioskId INT
    , BookingReferenceNum int IDENTITY(1,1)
)

正如 MSDN 所说:

标识列可用于生成键值。列上的标识属性保证以下内容:

  • 每个新值都是根据当前的种子和增量生成的。

  • 特定事务的每个新值都不同于表上的其他并发事务。

  • 列上的标识属性不保证以下内容:

  • 值的唯一性 - 必须通过使用 PRIMARY KEY 或 UNIQUE 约束或 UNIQUE 索引来强制执行唯一性。

...进一步阅读


推荐阅读