AS关键字

 

1.as是别名关键字,换句话说就是重新给sql某个字段取个别名的关键字,但as本身并不改变sql的字段的名称,只是在使用的时候有时为了临时给某一字段重新命名而起的过渡作用,经常会用在多表某一字段名称不相同的情况下使用,我们先举个简单例子,然后再时候深入说一些。

 

我先来显示一下我表中所有的数据.

ASA数据库 Sybase as在数据库_构造函数

 

我来显示一下我数据库表中年龄大于20岁的,这条语句很简单.

select * from student where stuage >20;

我们看到已经用select把自己想要的结果显示出来了.

ASA数据库 Sybase as在数据库_字段_02

 

但是有个问题,如果我们是开发者,或许可以看懂.

如果是学生的家长,它不认识英文怎么办呢?这个时候,我们就需要转换成中文.

select 
stuid as 编号,
stuname as 姓名,
stusex as 性别,
stuage as 年龄 ,
stuemail as 电子邮箱
from student where stuage >20;

ASA数据库 Sybase as在数据库_构造函数_03

 

 

当然,我们甚至可以把年龄是23岁设置显示为大龄,否则为正常.

select 
stuid as 编号,
stuname as 姓名,
stusex as 性别,
case when stuage>='23' then '大龄' else '正常' end as 年龄 ,
stuemail as 电子邮箱
from student;

ASA数据库 Sybase as在数据库_字段_04

 

 

select 
stuid as '编号',
stuname as [姓名],
stusex as 性别,
case when stuage>='23' then '大龄' else '正常' end as "年龄",
stuemail as 电子邮箱
from student;

大家注意看这次的写法,虽然我们显示和上一个没什么区别.

但是我们as后面别名的写法有的加括号,单引号,双引号,以及没有引号.

它们之间有什么区别呢?

这可是数据库的面试题.

ASA数据库 Sybase as在数据库_字段_05

 

 

如果我们把电子邮箱中间加上空格.  电子 邮箱.

那么我们这条sql语句就报错了.

但是 '编    号'[姓    名]  "年          龄"是都可以加空格的.

注意看下面图中圈到的部分.

ASA数据库 Sybase as在数据库_sql_06

 

 

单引号代表的是字符串.

方括号是为了避免和系统的关键字冲突.

select 
[stuid] as '编    号',
[stuname] as [姓         名],
[stusex] as [性别],
case when [stuage]>='23' then '大龄' else '正常' end as "年      龄",
[stuemail] as [电子邮箱]
from [student];

比如像这样的写法.. 

双引号是ansi-sql的一个美国国家标准协会.

其实跟方括号一个意思.

只不过一个是标准的,一个是后来微软又增加了的.

ASA数据库 Sybase as在数据库_构造函数_07

 

 2.在实际项目中,由于需要,我们先定义了一个sql可能用到的变量的类,分别定义为Id跟Name,然后通过构造函数我们可以看到,要从sql表中取Id跟Name字段的内容。

#region TTblRow 构造函数
/// <summary>
/// TTblRow 构造函数
/// </summary>
public TTblRow()
{
this.Id = -1;
this.Name = string.Empty;
 
}
public TTblRow(DataRow dataRow)
: this()
{
this.Id = DataRowHelper.GetValue<int>(dataRow, "Id");
this.Name = DataRowHelper.GetValue(dataRow, "Name");
 
 
}
#endregion
 
 
public int Id { get; set; }
 
public string Name { get; set; }

  

 但是呢,由于表非常多,每张表Id字段的命名是相同,但是‘’Name‘’字段却不相同了,而且是每张表都有自己的一个特殊的“”Name“”,那怎么办,那接下来如何写sql语句呢,就要用到我们的as关键字了

 

StringBuilder strSql = new StringBuilder();         
strSql.Append("select Id, " + fldName + " as Name from " + tblName);

通过as,将fldName(字段名)临时重命名为Name,就可以对所有的表进行相应的数据操作了。