从开头和结尾删除引号 - 对于具有空格的字段

时间:2012-02-23 10:23:16

标签: sql-server

这是我设法研究的代码。整个表从SQL导入,为NOT NULL。我在运行它时收到一条错误消息,“传递给RIGHT函数的长度参数无效”。如果字段中有空白条目,它似乎只会给出此错误消息。

如果字段不为空,如何将此脚本更改为仅运行?

UPDATE [Majestic].[dbo].Fields_custom
    SET maxlength=left(right(cast(maxlength as nVarChar),LEN(cast(maxlength as nVarChar))-1),LEN(cast(maxlength as nVarChar))-2)
    WHERE maxlength IS NOT NULL

3 个答案:

答案 0 :(得分:1)

只需添加一个条件,您的字段必须在开头和结尾都有引号:

... AND maxlength LIKE '"%"'

答案 1 :(得分:0)

如果该字段为空,则长度为零,因此您将要求最右边的-1个字符,这是无效的。

答案 2 :(得分:0)

- sql

WHERE not ( ISNULL(maxlength, '') = '' ) 

或oracle

WHERE not ( nvl(maxlength, '') = '' )