我有以下的SQL查詢有一個交叉應用子查詢。SQL查詢與CROSS APPLY拋出錯誤
SELECT
pm.[FileName]
,REPLACE([Message], 'Upload End. Total Row:', '') cnt_char
,CAST(REPLACE([Message], 'Upload End. Total Row:', '') AS INT) AS row_count
FROM
dbo.ProductMaster pm
CROSS APPLY
(SELECT TOP 30 *
FROM dbo.ActivityLog lo
WHERE [Message] like 'Upload End%'
AND lo.[FileName] = pm.[FileName]
ORDER BY ActivityDate DESC) AS s
它運行正常,但如果我刪除第二個表達式(,REPLACE([Message], 'Upload End. Total Row:', '') cnt_char
)的選擇,我得到以下錯誤
消息245,級別16,狀態1,行
轉換失敗當將varchar值'Upload Start'轉換爲數據類型int時。
子查詢中的where子句應特別排除Message是「Upload Start」的所有行,但爲什麼會出現此錯誤。我沒有正確使用CROSS APPLY
嗎?
您的答案與我接受的答案相同,但因爲另一個解釋它更好,所以接受該答案。我贊成你。謝謝。 – Satish