SELECT 语法错误,
有一表 MaterialType 由以下列组成:
MaterialTypeID int not null 标识列;
Name NVarChar(50) not null  名称列;
Type NChar(1) not null      区分列;
想使用以下语句查询:
SELECT MaterialTypeID, [Name],  
IsShe = (UPPER([Type]) = N'S'),  -- 打算获得一个 bit 列表示是否为 she 。
IsBare = (UPPER([Type]) = N'B')  -- 打算获得一个 bit 列表示是否为 bare 。
FROM MaterialType
但报语法错:
消息 102,级别 15,状态 1,第 2 行
'=' 附近有语法错误。不明白为什么错?用 CASE 语句倒是可以实现:
 (CASE  UPPER([CutType]) 
   WHEN N'S' THEN CAST(1 AS BIT)
   ELSE CAST(0 AS BIT) END)
但相当别扭。难道简洁的方式没有吗?
------解决方案--------------------SELECT MaterialTypeID, [Name], 
IsShe = case when UPPER(Type) = 'S' then 1 else 0 end, 
IsBare = case when UPPER(Type) = 'B' then 1 else 0 end  
FROM MaterialType