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