我发现这个功能
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)
,看看是否可行。