CASE在sql server中的使用用法
CASE 语句在sql server跟其它程序语言中的switch功能类似,用于计算条件列表并返回多个可能结果表达式之一。
在sql server中CASE具有两种格式:
a.简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
b.CASE 搜索函数计算一组布尔表达式以确定结果。
以上两种格式都支持可选的 ELSE 参数。
常见的几种CASE语句的用法如下所示:
1.CASE 函数用于计算多个条件并为每个条件返回单个值。CASE 函数通常的用途是使用可读性更强的值替换代码或缩写。
下面的查询使用 CASE 函数重命名书籍的分类,以使之更易理解。
USE pubs
SELECT
CASE type
WHEN 'popular_comp' THEN 'Popular Computing'
WHEN 'mod_cook' THEN 'Modern Cooking'
WHEN 'business' THEN 'Business'
WHEN 'psychology' THEN 'Psychology'
WHEN 'trad_cook' THEN 'Traditional Cooking'
ELSE 'Not yet categorized'
END AS Category,
CONVERT(varchar(30), title) AS "Shortened Title",
price AS Price
from titles
WHERE price IS NOT NULL
ORDER BY 1
2.使用带有简单 CASE 函数和 CASE 搜索函数的 SELECT 语句
CASE 函数的另一个用途给数据分类。下面的查询使用 CASE 函数对价格分类。
SELECT
CASE
WHEN price IS NULL THEN 'Not yet priced'
WHEN price < 10 THEN 'Very Reasonable Title'
WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
ELSE 'Expensive book!'
END AS "Price Category",
CONVERT(varchar(20), title) AS "Shortened Title"
from pubs.dbo.titles
ORDER BY price
3.使用带有 SUBSTRING 和 SELECT 的 CASE 函数
下面的示例使用 CASE 和 THEN 生成一个有关作者、图书标识号和每个作者所著图书类型的列表。
USE pubs
SELECT SUBSTRING((RTRIM(a.au_fname) + ' '+
RTRIM(a.au_lname) + ' '), 1, 25) AS Name, a
相关文档:
如果你经常遇到下面的问题,你就要考虑使用SQL Server的模板来写规范的SQL语句了:
SQL初学者。
经常忘记常用的DML或是DDL SQL 语句。
在多人开发维护的SQL中,每个人都有自己的SQL习惯,没有一套统一的规范。
在SQL Server Management Studio中,已经给大家提供了很多常用的现成SQL规范模板。
SQL Server Management ......
select * from student where name=?;
如果不用单引号引起来, pstmt.setString(1,"xx or 1=1");即sql应该就是select * from student where name=xx or 1=1就可以全部查出。
强制单引号引起来,select * from student where name='xx or 1=1'。就无效了。
数值型的没有要求用单引号引起来,应该是由于有一个转换过 ......
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablesp ......
今天装了SQL server2005数据库,完成后连接端口1433时失败了,第一次安装的时候,没有把机器中的SQL server2000数据库卸载掉,然后卸载—>安装—>连接,还是失败。于是下面就开始排查、调试以及重装SQL server2005数据库程序,整了快一天,终于在下班的时候连接成功。
现在把在装完程序 ......
一、删除列
ALTER TABLE AA DROP COLUMN DEP;
适用于小表-----数据量小的时候;
2、ALTER TABLE AA SET UNUSED("DEP") CASCADE CONSTRAINTS;
然后在负载小的时候,删除
ALTER TABLE AA DROP UNUSED COLUMNS;
二、添加列
先加一新字段再赋值:
alter table table_name add mmm varchar2(10);
update ta ......