2017-05-03 38 views
-1

我想寫一個選擇查詢,取消前導零並採取不是數字的所有字符。我想出瞭如何做到這一點,而不是在同一時間。SQL LEFT和patindex

到目前爲止,我有:

SELECT 
    Substring(rt_VehicleName, patindex('%[^0]%', rt_VehicleName), +4), 
    [rt_Odometer], 
    [rt_CumHours], 
    [Date], 
    [Emco] 

FROM 
    [GPS_Data].[dbo].[Engine_Hours] 

,結果是28 S.我想擺脫的S-

+2

太好了!你似乎在學習SQL。如果您有任何疑問,請按照網站上提供問題的指南進行操作。 –

+0

你有什麼你的LEFT()和PATINDEX()查詢?如果你編輯你的問題並顯示你已有的東西,那麼將它們組合起來會更容易。 –

+0

SELECT SUBSTRING(rt_VehicleName,PATINDEX( '%[^ 0]%',rt_VehicleName),+ 4) ,[rt_Odometer] ,[rt_CumHours] ,[日期] ,[EMCO] FROM [GPS_DATA]。[ dbo]。[Engine_Hours]結果是28 S.我想擺脫S –

回答

0

該查詢似乎過於複雜,但它在我的數據工作。

select top 10 SUBSTRING(LEFT(SUBSTRING([Your Column Here], PATINDEX('%[0-9.-]%', [Your Column Here]), 8000), PATINDEX('%[^0-9.-]%', SUBSTRING([Your Column Here], PATINDEX('%[0-9.-]%', [Your Column Here]), 8000) + 'X') -1), PATINDEX('%[^0]%', [Your Column Here]+'.'), LEN([Your Column Here])) as 'No 0s or Letters', * from [Your Table Here] 

enter image description here