有没有人能帮助一个mysql自定义函数来删除任何非字母数字字符(包括空格)的文本字符串,从开头和/或结尾删除“the”,并使字符串全部大写?
我试图拼凑网络上的各种功能而没有运气。任何肝脏都会非常感激。
根据@Barmar的要求,我已经提供了更多关于我在下面尝试过的内容的信息。虽然我已经尝试了各种各样的东西,但这是我得到的最接近的(从我能说的。)我认为这应该让我删除非字母数字的字符串,但不确定它是否有助于空格并删除“the”从开始和结束。
这是我得到的错误:
错误:您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'@Temp VarChar(1000))
这是代码:
Create Function `coverdb`.`stripdown`(@Temp VarChar(1000))
RETURNS VarChar(1000)
AS
Begin
Declare @KeepValues as varchar(50) = '%[^a-z0-9]%'
While PatIndex(@KeepValues, @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')
Return @Temp
End
答案 0 :(得分:0)
似乎你可能想要使用REPLACE()和UPPER()
你可以混合它们
SELECT REPLACE(UPPER(Field),'THE ','')
或添加更复杂的案例以从开始或结束中删除
SELECT UPPER(CASE WHEN Field LIKE 'the %' THEN SUBSTR(Field,5) ELSE Field END) AS UpperredField
尝试各种组合,它可能适合您。