我有一個包含[Work Phone](nvarchar)列的表。使用此數據庫的軟件允許用戶輸入任何字符,因此很多列包含諸如「555-555-5555分機1234鮑勃瓊斯」之類的內容。我唯一需要的是數字,我打算將Phone和Ext拆分爲獨立的列。運行一個功能和其他一些事情後,我只需要撥打電話和分機號碼。所有空格和字母已被刪除(例如55555555551234)。使用LEN()將值傳遞給RIGHT()
我試圖分裂這種方式,我首先要通過計算字段中的字符總數(在我的示例中爲),然後將該數字減少10(電話號碼中的字符總數(不包括國家代碼))。因爲擴展可能是我試圖使用LEN字符1-5之間的任何地方()由10
SELECT RIGHT([Table].[Column], LEN([Table].[Column]) -10)
FROM [Table]
得到這個計數,然後減少它,我得到的是「傳遞給RIGHT無效的長度參數功能。」
SELECT LEN([Table].[Column]) -10
SELECT LEN('55555555551234') -10
我得到的預期值4:
,因爲如果我這樣做,我不完全理解這個問題。
將此參數傳遞給RIGHT的正確方法是什麼,這樣我就可以得到我想要的東西(還是隻有一種完全更好的方法來做到這一點)?
當傳遞給RIGHT函數的LEN([Table]。[Column])-10求值爲負數時,會出現錯誤消息。如果在此示例中列的長度等於或小於9,則會發生這種情況。 ( –