【发布时间】:2019-07-23 08:06:38
【问题描述】:
您好,我对 sql server 有一个疑问
当列数据类型 i 是 sql server 中的数字时,当为空或空值时获取 0 否则为 max(id) 表:empid
CREATE TABLE [dbo].[empid](
[id] [numeric](11, 0) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[empid] ([id]) VALUES (NULL)
GO
INSERT [dbo].[empid] ([id]) VALUES (CAST(6 AS Numeric(11, 0)))
GO
基于以上数据,我想要如下输出
id
6
我尝试如下
select case when isnull( max(id),'')='' then cast (0 as numeric) else max(id end test from )
[Test].[dbo].[empid]
但是上面的查询出错了 消息 8114,第 16 层,状态 5,第 9 行 将数据类型 varchar 转换为数值时出错。
假设表中没有记录,那么 maxid 将得到 0
请告诉我如何编写查询以在 sql server 中完成此任务
【问题讨论】:
-
您在此处实际使用的是哪个版本的 SQL Server? 2008 年现已完全失去支持。
标签: sql-server-2008 sql-server-2012