--case后面是条件when后面是条件为什么,then后面结果,最后显示的是结果那一列,如
select
case id when '3' then 'one' ELSE id end
from @T
并且一定要有 end 或者是else 什么 end

declare @T Table (id char(10))
insert into @T select '1'
insert into @T select '2'
insert into @T select '3'

select * from @T
--@T为表变量

----开始测试
--select
-- case id
--  when '3' then cast('' as char(10))
--  else id
-- end as Id,
--    SQL_VARIANT_PROPERTY((case id
--  when '3' then cast('' as char(10))
--  else id
-- end ),'BaseType') as CaseResultType,
-- case id when '3' then DataLength(cast('' as char(10))) else DataLength(id) end as IDDataLength
--from @T
----显示指定结果为char类型,长度为10,可以看到case后的result类型为char,没有变化。

--select
-- case id
--  when '3' then '' else id end as ID,
-- SQL_VARIANT_PROPERTY((case id when '3' then '' else id end),'BaseType') as CaseResultType,
-- case id when '3' then DataLength('') else DataLength(id) end as IDDataLength
--from @T
----不显示指定类型,那么'' 为varchar型,case的result类型优先级varchar由于char,结果显示result类型为varchar

select
 case id
  when '3' then 4 else id end as ID,
 SQL_VARIANT_PROPERTY((case id when '3' then 4 else id end),'BaseType') as CaseResultType,
 case id when '3' then DataLength(4) else DataLength(id) end as IDDataLength
from @T
--显示的结果可以看出,case的result类型为int型,但存储大小不全为4

代码可以直接运行,在sql server 2005 express版里面

转载于:https://www.cnblogs.com/chenwancoco/archive/2011/10/12/2208169.html

SQL Server 中的case when then else 中的结果类型相关推荐

  1. SQL Server 2008 R2——ROW_NUMBER() 去掉不同行中相同列的重复内容

    原文:SQL Server 2008 R2--ROW_NUMBER() 去掉不同行中相同列的重复内容 ==================================声明============= ...

  2. 使用SQL Server 2017 Docker容器在.NET Core中进行本地Web API开发

    目录 介绍 先决条件 最好事先知道 假设 动机 跨平台 快速安装 经济有效 不同版本/多个实例 速度 持久性 找到SQL Server 2017镜像并在本地下载它 在没有卷挂载的情况下在本地执行SQ​ ...

  3. windows7安装sql server 2000安装步骤 及安装过程中遇到的问题和解决方式

    提示:文章写完后windows7安装sql server 2000安装步骤 及安装过程中遇到的问题和解决方式, 文章目录 一.ms sql server 2000是什么? 版本简介: **特点:** ...

  4. SQL Server查询某个字段存在哪些表中

    一.查询SQL Server中所有的表 SQL语句:SELECT * FROM sys.tables name列表示所有的表名. 二.查询SQL Server中所有的列 SQL语句:SELECT * ...

  5. SQL Server 将在下一个版本实现内存中运行

    From:Microsoft adding in-memory capabilities to SQL Server 在本周召开的SQL Server专业组织峰会上,微软宣布,将在下一个SQL Ser ...

  6. SQL Server系统视图/表/功能。 现实生活中的常见问题和解决方案

    介绍 (Introduction) In this new article, we will talk about the system views/tables/functions and how ...

  7. SQL Server 2014 许可证(六)虚拟化中的授权

    一.虚拟化涉及的架构 硬件方面的结构如下: 注意:在禁用超线程时,硬件线程(hardware thread)等于"物理核"的数量:启用超线程时,硬件线程等于2倍的物理核的数量. 虚 ...

  8. SQL Server 2005 - 如何在预存程序中调用另外一个预存程序

    要在一个预存程序中调用另外一个预存程序,可以使用下列两种方式之一进行调用:  <?xml:namespace prefix = o /> EXECUTE <欲执行之预存程序的名称&g ...

  9. Visual C# 2008+SQL Server 2005 数据库与网络开发――3.2.4 匿名类型

    C# 2008中新增的第四个特性是--匿名类型.匿名类型是允许动态创建可以添加到集合中,并且可以使用关键字"var"行访问的未命名结构化类型.这种类型提供了一种用来将一组只读属性封 ...

最新文章

  1. 轻松一下,看看vs.net2002变态的智能提示,不知道算不算bug
  2. Vue用Cordova打包后的app自升级功能实现
  3. Request.Form的用法
  4. SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上
  5. 哪里是我们最好的避风港?
  6. JavaScript 第十章总结:first class functions
  7. java websocket原理_Java WebSocket基本原理
  8. linux 用户设密码,linux 上添加用户,设置密码
  9. Python+Selenium开发工具安装及下载
  10. image 搜索docker_docker images命令-列出image
  11. arnold官方帮助文档_Python用不好英语水平不够?这里有官方中文文档你看不看
  12. 模型推理速度与硬件算力
  13. 中石油 所罗门的宝藏
  14. 嵌入式培训课程哪里好?嵌入式开发学习路线
  15. c# NPOI按模板导出
  16. unity3d shader之God Ray上帝之光
  17. jquery事件绑定的问题Uncaught TypeError: $(...).live is not a function at HTMLDocument.<anonymous> (ex5_
  18. 安卓点击图片跳转界面_详解拳头注册 + 安卓LOL试玩教程
  19. 如何编写高质量的易语言代码?
  20. Go调用Python by go-python3

热门文章

  1. Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效
  2. 遍历某路径下的所有文件
  3. LeetCode题解-23 合并K个排序链表 Hard
  4. Linux入门-第五周
  5. python--迭代,生成
  6. WebSocket实践
  7. Nodejs cqmanager项目
  8. Python_urllib
  9. 用js实现改变随意改变div属性style的名称和值的结果
  10. LeetCode--265. 粉刷房子Ⅱ(动态规划)