하위 쿼리와 함께 교차 적용되는 다음 sql 쿼리가 있습니다.Sql 쿼리 (CROSS가 적용됨) throwing error
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
)를 제거하는 경우의 I는 다음과 같은 오류
에게 메시지 245, 수준 16, 상태 1, 줄 1
얻을 변환이 실패 선택 varchar 값 'Upload Start'를 데이터 유형 int로 변환 할 때.
하위 쿼리의 where 절은 Message가 "Upload Start"인 모든 행을 특별히 제외해야하지만 왜이 오류가 발생합니까? CROSS APPLY
을 올바르게 사용하지 않습니까?
귀하의 답변은 동의 한 것과 동일하지만 다른 하나의 설명에 따르면 더 잘 설명됩니다. 나는 널지지했다. 감사. – Satish