SqlServer一些用法
首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:
SELECT <myColumnSpec> =
CASE
WHEN <A> THEN <somethingA>
WHEN <B> THEN <somethingB>
ELSE <somethingE>
END
在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
USE pubs
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
FROM titles
ORDER BY price
GO
这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE:
SELECT 'Number of Titles', Count(*)
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
GO
你甚至还可以组合这些选项,添加一个 ORDER BY 子句,如下所示:
USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END AS Range,
Title
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
ORDER BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
GO
注意,为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。
select id=identity(int,1,1) ,attid=cast(attachmentid as int),contentid into #t3 from attachment
where contentid = 402
select contentid,attid
from #t3
where id in (select min(id) from #t3 group by contentid)
其中,attachmentid为自增字段,把contentid字段相同的数据,只取出一条
通过写SQL语句来执行存储过程
declare @Sql nvarchar(1000)
set @sql=@sql+' and C.Author like ''%'+cast(@Author as varchar)+'%'' '
set @sql=@sql+' and (datediff(s,cast('''+cast(@startTime as varchar)+''' as datetime) ,CommitDate)>0) '
exec(@sql)
like 匹配查询时,第一个%前面要加俩个'',第二个%后面要加俩个''
字符串连接时间类型时,首先把datetime类型参数转换成字符串类型,注意,也要加俩个''.
转载于:https://www.cnblogs.com/nonsuch/archive/2007/10/09/918123.html
SqlServer一些用法相关推荐
- Sqlserver With用法
用法1:第一级数据统计 use Tempdbgoif not object_id(N'Tempdb..#T') is nulldrop table #TGoCreate table #T([ID] i ...
- SqlServer substring用法
SUBSTRING 返回字符.binary.text 或 image 表达式的一部分.有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型. ...
- MySql按周,按月,按日分组统计数据
知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case grou ...
- 代码规范(一)——java篇
为什么80%的码农都做不了架构师?>>> 1. Result result=new Result(); result.setCode(201); result.setStr(r ...
- oracle去重离子,oracle去重
oracle去重 create table tmp_table3 as (SELECT seqno FROM (SELECT t.seqno,ROWID, ROW_NUMBER() OVER(PART ...
- 删除oracle数据库的三种方法,oracle数据库的删除方法详解
oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...
- sql语句批量修改字段
一. 根据条件去掉指定记录的前2个字符 update 表名 set 字段名=REPLACE(字段名,字段名,SUBSTR(字段名,1,2)) where 条件: 简单例子: update test s ...
- 读SQL Server性能调优实战——陈畅亮、吴一晴著
sqlserver 微软 安装 根据业务特点来考虑 1.分析产品业务数据的增长量 预估某些关键业务数据在一定时间内的增长量,预估数据在未来的增长数据, 2.了解产品业务操作类型.考虑业务是以查询为主还 ...
- 简单介绍SQLserver中的declare变量用法
这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...
最新文章
- 搭建Hadoop的Eclipse开发环境
- oracle负载均衡方案,Oracle负载均衡配置代码
- XML,Object,Json分析转换Xstream采用
- opcache php 原理_php之Opcache
- 前端面试问题(HTML5+Http+web)
- wxWidgets:wxCollapsiblePaneEvent类用法
- Python中的线性回归:Sklearn与Excel
- Linux下ps命令详解
- css border渐变_css边框渐变
- android开发 视图联动_Flutter混合APP开发
- 嘴上说着喜爱Java 9 ,身体却诚实地拥抱了Java 8
- python+request+Excel做接口自动化测试
- python找不到sys模块_在本地目录中找不到模块,存在于sys.path中
- 如何远程配置DHCP服务器
- wince怎么刷carplay_carplay wince安装版
- poe工业以太网交换机可以当普通交换机用吗,poe工业以太网交换机有哪些优势
- 4227. 【五校联考3day2】B (Standard IO)
- Android 指纹验证标准API学习
- 利用 eutils 实现自动下载序列文件(python实现)
- 用Android手机远程桌面连接登陆Windows10(用微软账号登陆),Microsoft账户登陆的计算机远程桌面连接问题