首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL中的CASE语句

SQL中的CASE语句
EN

Stack Overflow用户
提问于 2017-01-13 15:53:10
回答 1查看 122关注 0票数 2
代码语言:javascript
复制
Select CASE WHEN loc ='J' THEN 'Y'
            WHEN loc NOT IN ('J') THEN 'N'
            ELSE 0 END AS loc FROM [prd].[dbo].[GRP]  
            EXCEPT
Select location FROM [prd1].[dbo].[GRPO] WHERE VALUE IN('Y','N');

错误:

将varchar值'Y‘转换为数据类型int时,转换失败。

两个表中的两个列仅为相同的数据类型(varchar)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-13 15:55:15

Case语句从result_expressions中的类型集和可选的else_result_expression返回最高优先级类型。由于0 (INT)具有比Y (Varchar)更高的优先级,因此Y被隐式转换为INT,因此您将得到转换错误。

0(INT)更改为ELSE语句中的'0'(String)

代码语言:javascript
复制
Select CASE WHEN loc = 'J' THEN 'Y'
            WHEN loc <> 'J' THEN 'N' -- loc NOT IN ('J')
ELSE '0' END
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41638506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档