sql - 语法错误;访问 SQL Server 的 VBA 函数
问题描述
我正在将大型 MS Access 应用程序转换为几乎完全在 SQL Server 上运行,以提高性能,因为 Access 数据库很古老而且速度极慢。因此,我正在努力将 VBA 函数重新创建为 SQL 函数。SQL Server 到处都给我语法错误,我试图理解为什么,这里是 VBA:
Function AlphaNum(prodno As String)
Dim i As Long
If Len(prodno) = 0 Then Exit Function
For i = 1 To Len(prodno)
If Mid(prodno, i, 1) Like "[0-9a-z]" Then AlphaNum = AlphaNum & Mid(prodno, i, 1)
Next i
If IsNumeric(AlphaNum) Then
While Left(AlphaNum, 1) = "0"
AlphaNum = Mid(AlphaNum, 2)
Wend
End If
End Function
我已经用 SQL 走了这么远。我当然也不是这方面的专家,有什么想法吗?
CREATE FUNCTION dbo.[NAL_AlphaNum]
(
@prodno varchar(10)
)
RETURNS VarChar(10)
BEGIN
DECLARE @counter INT,
@AlphaNum varchar(10)
SET @counter='1'
CASE WHEN Len(@prodno) = 0 THEN EXIT
WHILE @counter < Len(@prodno)
BEGIN
CASE WHEN Mid(@prodno, i, 1) LIKE '[0-9a-z]'
THEN @AlphaNum = @AlphaNum + Mid(@prodno, i, 1)
SET @counter = @counter + 1
END
CASE WHEN IsNumeric(@AlphaNum) THEN
WHILE Left(@AlphaNum, 1) = '0'
@AlphaNum = Mid(@AlphaNum, 2)
END
RETURN @AlphaNum
END;
先感谢您。
解决方案
推荐阅读
- java - Java Math.abs(int) 优化,为什么这段代码慢了 6 倍?
- javascript - 当使用 React Context API 的其他组件更改状态时,如何防止自动渲染?
- javascript - 使用 JQuery 从目录中为我的游戏随机获取 8 张图像
- python - 如何在 python 中调整一些音频?
- jquery - 如何在多个验证表单期间触发 ajax 内的事件(成功)以定向到下一页
- laravel - Laravel 5.8 图片上传
- java - 活动最小化然后恢复后再次可见
- oauth - Yii 2 - authclient 不调用 onAuthSuccess
- python - R网状在第二个python文件中导入模块不起作用
- excel - 条件 if 和 sum