生成随机数(SQL Server)

时间:2018-07-29 12:13:32

标签: sql-server excel vba excel-vba

我要插入用户名的第一个字母和最后一个字母+ 2个随机数字以生成收据编号。我正在使用VBA通过ADODB SQL Server连接做到这一点。

即对于John Doe,将如下所示:JE43

INSERT INTO [dbo].[TEP_ReceiptID] ([ReceiptID]) Values (UCase(Left(Application.username, 1) & Right(Application.username, 1)) & cast(rand()*99 as int)))

问题是我遇到了与此逻辑相关的问题(此错误):

  

将varchar值'JE'转换为数据类型时,转换失败   

帮助?

编辑

我尝试过:

INSERT INTO [dbo].[TEP_ReceiptID] ([ReceiptID]) Values (Cast(UCase(Left(Application.username, 1) & Right(Application.username, 1)) & cast(rand()*99 as int))) as nvarchar)

但这不能解决问题。

2 个答案:

答案 0 :(得分:1)

您稍后要进行投射(在将“字符串”与“ int”连接起来之后),请尝试以下操作:

INSERT INTO [dbo].[TEP_ReceiptID] ([ReceiptID]) Values (UCase(Left(username, 1) & Right(username, 1)) & cast(cast(rand()*99 as int) as nvarchar))

答案 1 :(得分:0)

我不再参加VBA,但我认为您在括号中遇到了麻烦(在编辑代码中),请尝试以下操作:

(b,g,r) = cv2.split(specs)
indices = np.where(b == [0])
for i,j in zip(indices[0], indices[1]):
    specs[i,j] = sub_face[i,j]
相关问题