2014-10-31 67 views
0

我想匹配一個字符串,其中最後一個數字連接必須忽略。如何使用不包括數字的字符串匹配列

即Emp_Doc表

doc_ID  EmpID    Doc_name 
--------------------------------------------- 
1   1     LeaveOrder1 
1   1     LeaveOrder2      
3   1     Appointment_Order 
------------------------------------------------ 


i.e. DocMaster table 

doc_ID    Doc_name 
--------------------------------------------- 
1     LeaveOrder 
2     Leaving_Certificate 
3     Appointment_Order 
------------------------------------------------ 

我想相對於匹配的文檔主抓取LeaveOrder1和LeaveOrder2。但我如何排除最後一個數字在提取

回答

0

假設你的VARCHAR列在其他地方包含數字,例如

DECLARE @str VARCHAR(20) 
SET @str = 'Leave25Order1' 

您可以使用此:

SELECT LEFT(@str, LEN(@str) - PATINDEX('%[0-9][^0-9]%', REVERSE(@str))) 

得到這個:

Leave25Order 
0

試試這個。這將工作,如果你的字符串中間有數字數據。

SET @str = 'LeaveOrder1' 

SELECT CASE 
     WHEN Patindex('%[0-9]%', RIGHT(@str, Len(@str) - 1)) > 0 THEN LEFT(@str, Len(@str) - 1) 
     ELSE @str 
     END 
+0

如果尾數超過一位,該怎麼辦? – 2014-10-31 13:44:31

相關問題