Fighting Ant

Ant can be great while elephant can be chickenshit

导航

连接符,数值运算与函数

Posted on 2008-07-03 15:55  Nillson  阅读(434)  评论(0编辑  收藏  举报

连接符号
这个东西比较简单根据不同的数据库有不同的符号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中不是通用的,所以在设计数据库的时候应该尽量避免使用函数,在此就偷个懒不写了