使用以下代码在“>”附近给出了错误的语法Long字段中的数据如下所示:
Review Body 3,
Review body 6,
Aprentice,
我已经在cirlces中进行了几个小时的训练以对此进行排序,是因为我在计算中使用了文本函数(右)。
SELECT TOP 1000 [Id]
,[Short]
,[Long]
,CASE ISNUMERIC(RIGHT( grade.Long , 1 )) WHEN cast(RIGHT( shiftname.Long , 1 )as int) > 4 THEN 'Qualified' ELSE 'Unqualified' END as Grade
FROM [RosterPro_Live].[dbo].[lookup_PostGrade] as grade
答案 0 :(得分:2)
在语法上,如L.V. Karlsen表示,此问题与SQL Server CASE .. WHEN .. expression和CASE Statement SQL 2012重叠。
你的问题不够明确,但是在这个CASE(双关语的一半)中,看起来你可能真的想要NEST两个CASE表达式并使用CASE语法的两种变体:
SELECT TOP 1000 [Id]
,[Short]
,grade.[Long]
,CASE ISNUMERIC(RIGHT( grade.Long , 1 ))
WHEN 1 THEN
CASE WHEN cast(RIGHT( shiftname.Long , 1 )as int) > 4 THEN 'Qualified' ELSE 'Unqualified Shift' END
WHEN 0 THEN
'Unqualified Grade'
END as Grade
FROM [dbo].[lookup_PostGrade] as grade
-- assume join to shiftname is missing
请注意,WHEN 0
可以是ELSE
。