0
我遇到问题。我正在8700万行文件上运行名称解析脚本。它设置为解析NAME
列,其中包含数据,如SMITH,STEVE S等。传递给RIGHT函数的长度参数无效MESSAGE
当我运行下面的命令名称分解成列的名字,中间名和姓氏,这在我的所有其他表的作品,但这个倔强的人,我得到这个错误:
Invalid length parameter passed to the RIGHT function
不能确定为什么。请任何帮助将是伟大的。
UPDATE table6
SET lastName = LEFT(Name, CHARINDEX(', ', Name) - 1),
firstname = SUBSTRING(Name, CHARINDEX(', ', Name) + 2, CASE WHEN CHARINDEX(' ', Name, CHARINDEX(', ', Name) + 2) = 0 THEN LEN(Name) + 1 ELSE CHARINDEX(' ', Name, CHARINDEX(', ', Name) + 2) END - CHARINDEX(', ', Name) - 2),
middlename = RIGHT(Name, LEN(Name) - CASE WHEN CHARINDEX(' ', Name, CHARINDEX(', ', Name) + 2) = 0 THEN LEN(Name) ELSE CHARINDEX(' ', Name, CHARINDEX(', ', Name) + 2) END)
我们可以购买一些样品输入和预期输出吗?代码的一点格式也会造成奇迹。那么我们可能会理解'case'表达式中的'else'子句是基于一个不切实际的假设。或者一个NULL在悄悄 – HABO
当然,基本上如前面提到有一列称为名称中有各种名称的姓氏,名字中间名格式如: 史密斯,史蒂夫·赖恩 史密斯,史蒂芬 史密斯,史蒂夫 - [R 等等...... 上面的解析器根据代码将它拆分为列名,中间名,姓......这对于除此表以外的所有内容都很有用。我做之前执行该TSQL脚本运行一个清除脚本,它是: 选择前10名 从表6 其中CHARINDEX(“”,名字)= 0 从表6 其中名称=‘’ 删除删除 从表6 其中名称为空 从表6 其中相似的名称“%,%,” – Sal
所以_every_行的形式有一个名字'LAST,␢FIRST␢I'删除删除? – HABO