0
我有一個PRJ_NAME結果「Authoriazations - XXXXXX-XXXXXX」,但我要的是「授權」,所以我用這個查詢與取得圓滿成功。SQL SELECT有左,LEN
SELECT ISNULL(LEFT(PRJ_NAME, LEN(PRJ_NAME)-16),'') AS 'Folder Name'
FROM MHGROUP.PROJECTS
WHERE PRJ_ID = '3626747'
現在,當我在基本連接中使用以下查詢時,我無法在此查詢中使用此邏輯。
SELECT m.[DOCNAME],
m.[SUBCLASS_ALIAS],
u.FULLNAME,
m.[CDATE3] as 'File Date',
m.[DECLAREWHEN] as 'Declared',
ISNULL(LEFT(p.PRJ_NAME, LEN(p.PRJ_NAME)-16),'') as 'Folder Name',
m.ENTRYWHEN
FROM ([Imanage].[MHGROUP].[DOCMASTER] as m (nolock)
JOIN [Imanage].[MHGROUP].[DOCUSERS] as u (nolock) on u.USERID = m.OPERATOR),
[Imanage].[MHGROUP].[PROJECTS] as p (nolock),
[Imanage].[MHGROUP].[PROJECT_ITEMS] as i (nolock)
WHERE i.ITEMTYPE = 'D' and
i.ITEM_ID = m.DOCNUM and
i.PRJ_ID = p.PRJ_ID
ORDER BY u.FULLNAME, p.PRJ_NAME
我得到以下錯誤...
消息537,級別16,狀態2,行傳遞給 左或子字符串函數2無效長度參數。
我似乎無法想象可能會導致這種情況。任何援助或指導將不勝感激。
處理它爲什麼不先查詢失敗同樣的錯誤?此外,我認爲他根本不需要'len',只需'left(prt_name,14)'或者''left(prt_name,len('Authorizations'))' – Beth 2014-11-06 19:36:02
@Beth,left(prt_name,len('如果prj_name小於16,即它根本不包含授權,一些錯誤的條目 – radar 2014-11-06 19:37:35
沒錯,但他說他使用了他的第一個查詢「完全成功」。如果數據不好(短)會怎麼樣? – Beth 2014-11-06 19:40:01