【发布时间】:2017-09-05 04:50:24
【问题描述】:
我有一个表,其中包含名为 EMPLOYEE_CODE 的 varchar 列中的文本和数字。我想忽略所有文本并获得列中的最高数字,然后 + 1,然后我可以将其分配给新员工。下面的代码适用于 INT 列,但不适用于 VARCHAR,因为我收到以下错误:
将 varchar 值“testusercode”转换为 数据类型 int。
SELECT MAX(EMPLOYEE_CODE) + 1 as Target
FROM [COMPANY].[dbo].[USER]
WHERE EMPLOYEE_CODE + 1 NOT IN (SELECT EMPLOYEE_CODE From dbo.USER)
我猜我必须在查询中添加转换或强制转换,但不确定如何
【问题讨论】:
-
请展示一些真实的EMPLOYEE_CODE数据,或示例
-
Hi Vec 数据如下所示 1000 1001 1002 AD1 1003 1004 AD2 1005
-
这是一个糟糕的设计。生成(假设)这样的“唯一”值在多用户环境中不起作用,并且绝对不可扩展。改用序列或标识列
标签: sql sql-server tsql