我遇到了LIKE语句附近的sql查询错误。我是否在CASE的WHEN子句中错误地格式化了LIKE子句?这是代码。无法精确定位LIKE关键字附近的错误
SELECT
substring (Cases.FileNumber,4,6) AS [FileNumber]
,Charge.ChargeCode
,Cases.BookedLastName
,Cases.BookedFirstName
,Cases.ArrestDate
,Cases.BookedDOB
,Cases.BookedAge
,Charge.OffenseToDate
,Cases.BookedRace
,Cases.BookedSex
,Charge.OffenseStreetAddress1
,Charge.OffenseCity
,Charge.OffenseState
,Charge.OffenseZipCode
,Charge.ChargeDescription
,(SELECT CASE
WHEN charge1.ChargeDescription LIKE N'%heroin%' THEN 'Heroin'
ELSE 'Not Heroin'
END
FROM tblCsCharge AS charge1
INNER JOIN tblCsCases AS cases1
ON charge1.FileNumber = cases1.FileNumber
WHERE
charge1.BookedLastName = cases1.BookedLastName
AND charge1.BookedLastName = cases1.BookedLastName
AND charge1.BookedDOB = Cases.BookedDOB
AND cases2.ChargeCode IN (N'579.015-001Y201735')) AS HeroinYN
FROM
tblCsCases AS Cases
INNER JOIN tblCsCharge AS Charge
ON Cases.FileNumber = Charge.FileNumber
WHERE Cases.IssuedDate >= 01/01/2017
AND
Cases.IssuedDate <= @EndDate
AND
Charge.ChargeCode IN (N'579.015-001Y201735')
AND
Cases.BookedLastName NOT IN (N'Bogus')
ORDER By
Cases.BookedLastName
这是一家专注于构建只会输出海洛因或不基于海洛因关闭在我们的数据库中的大量文本字段的一列一个更大的查询中的子查询。
编辑:
尽管变化,应该使代码编译,下面的错误现在出现: 无效的列名称BookedLastName“。 列名'BookedLastName'无效。 列名'BookedDOB'无效。 无法绑定多部分标识符“cases2.ChargeCode”。
看起来你错过了AS ASINYN之前的一个关系,并且混合了搜索到的CASE形式。 –
“不喜欢代码”,以及你的意思是什么? –
你不能合并'CASE'的两个变体,要么你做'CASE表达'当值THEN ...'或者当'表达那么'的时候,你就是合并。 –