这是我的问题:
SELECT at.AssetTag,
dp.Custodian,
CASE WHEN PATINDEX('%_%', dp.Custodian) = '0'
THEN dp.Custodian
ELSE RIGHT(LTRIM(RTRIM(dp.Custodian)),LEN(LTRIM(RTRIM(dp.Custodian)) - PATINDEX('%_%', dp.Custodian))) END AS FirstName,
CASE WHEN PATINDEX('%_%', dp.Custodian) = '0'
THEN ''
ELSE LEFT(dp.Custodian, PATINDEX('%_%', dp.Custodian)-1) END AS LastName, RIGHT(at.Assettag,3) AS MediaTypeSuffix
FROM tblAssetTracking at (NOLOCK)
INNER JOIN tblDiscoveryProcessing dp (NOLOCK) ON dp.FKAsset = at.ID
WHERE dp.Custodian Is Not Null当我运行它时,我得到一个错误“转换失败,当转换nvarchar值'XXX‘到数据类型int”(xxx是我必须替换的实际值)。有人能帮帮忙吗?Ps。我希望语句在代码块中是正确的。显然,我不明白如何正确地粘贴代码。
谢谢!
发布于 2014-02-26 00:25:02
不要紧。我不得不去掉修剪:
SELECT at.AssetTag,
dp.Custodian,
CASE WHEN PATINDEX('%[_]%', dp.Custodian) = '0'
THEN dp.Custodian
ELSE RIGHT(dp.Custodian,LEN(dp.Custodian) - PATINDEX('%[_]%', dp.Custodian))
END AS FirstName,
CASE WHEN PATINDEX('%[_]%', dp.Custodian) = '0'
THEN ''
ELSE LEFT(dp.Custodian, PATINDEX('%[_]%', dp.Custodian)-1)
END AS LastName,
RIGHT(at.Assettag,3) AS MediaTypeSuffix
FROM tblAssetTracking at (NOLOCK)
INNER JOIN tblDiscoveryProcessing dp (NOLOCK) ON dp.FKAsset = at.ID
WHERE dp.Custodian Is Not Nullhttps://stackoverflow.com/questions/22019984
复制相似问题