我发现这个功能

CREATE FUNCTION dbo.udf_GetNumeric
    (@strAlphaNumeric VARCHAR(256))
RETURNS VARCHAR(256)
AS
BEGIN
DECLARE @intAlpha INT
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
BEGIN
WHILE @intAlpha > 0
BEGIN
SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
END
END
RETURN ISNULL(@strAlphaNumeric,0)
END
GO


我想使用它,但是出现类似


  1064-您的SQL语法有误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第2行的'@strAlphaNumeric VARCHAR(256))RETURNS VARCHAR(256)AS BEGIN DECLARE @intAlp'附近使用


我的phpmyadmin版本是4.0.10

最佳答案

您将使用定义为RETURN ISNULL(@strAlphaNumeric,0)的这一行返回一个布尔值。如果这确实是您要实现的,则必须返回VARCHAR。尝试用RETURNS VARCHAR(256)更改RETURNS TINYINT(1),看看是否可行。

09-25 21:40