惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

博客园 - Nillson

传说中的Singleton.... 设计模式--简单工厂模式 策略模式 抽象类与接口 C# 实现的一个二叉树类 回顾一个面试题 再谈代理 常见的排序方法 预定义,宏定义 复杂查询 数据库中的Index和View的理解 重载和重写 采用递归的方法获得一棵树的所有叶节点 .NET中的新概念整理 4月要看的书 System.Runtime.InteropServices浅见 挂个牛人 一篇关于如何写注释的文章,值得收藏 Vistual Studio 2005到Vistual Studio 2008的版本转换问题 Visual Studio 2008 的一个Bug
连接符,数值运算与函数
Nillson · 2008-07-03 · via 博客园 - Nillson

连接符号
这个东西比较简单根据不同的数据库有不同的符号SQL server 采用的是"+".它的作用是可以将不同的列的信息合并成一列作为查询结果输出出来。例如下面的语句:

create table regtest
(
TName nchar(30),
TSalary int
)
insert into regtest values('nillson', 100000)
select * from regtest
select TName +Cast(TSalary as nchar(10)) as NameSalary from regtest

第二个查询语句的输出结果为
NameSalary
nillson                       (100000    )
这个功能比较好,省去了我们在程序中重新组合这些字段的麻烦了。
Cast运算符
这个东东的作用是用来转换数据类型的,因为"+"只能连接具有相同或者相似的数据类型的数据,很显然char和int是差了十万八千里的。这跟我们在程序里边对数值变成字符串之后再组合的道理是一样一样滴。
Cast的语法
Cast(colname as datatypename)
As的用法
As为查询结果中出现的新列创建一个别名,这个也好理解,组合出来的东西与原来的列名不可能一样,所以默认情况下是没有列名的。
别名可以在Order by子句中用,但是却不能在Where, Group by, Having用,这是为嘛呢?其实道理也简单,这是因为执行Sql语句的子句是按照一定的顺序而来的,它们的顺序是From->Where->Group->Having->Select->Order by 这样看来就很明了了. As所创建的别名只有在Select子句之后才有意义,在之前的子句中压根就不知道有这么个东西.所以报错也就在所难免了.

数值运算:

允许在两列之间运用数值运算符来“创造”出一个新列,当然这一列在查询结果中是没有列名的,需要用As关键字为其取一个别名。如果需要排序可以利用该别名来排序,但是该别名同样不能在Group by, Having中使用。

函数:

非常不幸的是函数在各个DBMS中不是通用的,所以在设计数据库的时候应该尽量避免使用函数,在此就偷个懒不写了