desc 从大到小
asc 从小到大
select ProductID, Name, ProductName,--using an alias 'The list price for' + ProductNumber + 'is$' + convert(varchar,Listprice) + '.',--using the concatenation ……
SELECT name, size, color FROM tb_Production ORDER BY 2; # 2 即 size
--desc = descending order
--asc = ascending order
desc倒序排列
asc 顺序排列
这里要多看下,信息量太大了
select name,id,round(count*2,1)as counts,country from websites 从表中选取多个列 在逗号后可以对每个列进行改变,改好后再加逗号 后面继续写其他的列
round 为四舍五入的函数(,1)为小数点后保留一位数字 (,0)为小数点后保留零位数 小数点后一位数 直接四舍五入
isnull(Color,'') null 改为空
可同时执行两个select
--Topic 4
select ProductID, Name, ProductNumber, isnull(Color,''), isnull(Size,'1'), ListPrice
from Production.Product
#注释-isnull()--针对空值进行编辑,isnull(Color,'')--指定Color列的空值不显示, isnull(Size,'1')指定Size的空值显示为1代替。
--Topic 5
select ProductID, Name, ProductNumber,
isnull(Color,'') as Color, isnull(Size,'') as Size123, --using an alias
ListPrice
from Production.Product
#注释:as--给查询结果中的列编辑新列名
select ProductID, Name as ProductName, --using an alias
'The list price for ' + ProductNumber + ' is $ ' + convert(varchar,ListPrice) +'.' ,--using the concatenation to join character end-to-end.(使用串联将字符端到端连接起来。)
'The list price for ' + ProductNumber + ' is $ ' + convert(varchar,ListPrice) +'.' as [Description] --using brackets to let SQL server conside the strin as a column name(--使用括号中的字符串视为列名)
from Production.Product
#注释:
格式:
CONVERT(data_type,expression[,style])--转换函数
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.
字符串类型:
CHAR
CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。
VARCHAR
存储变长数据,但存储效率没有CHAR高,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。
VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。
TEXT
text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
NCHAR、NVARCHAR、NTEXT、三种从名字上看比前面三种多了个"N"。
和char、varchar比较起来,nchar、nvarchar最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。
可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
--Topic 6
select BusinessEntityID,rate from [HumanResources].[EmployeePayHistory]
select BusinessEntityID
,rate
,rate*40*52 as AnnualSalary
,round(rate*40*52,1) as AnnualSalary
,round(rate*40*52,0) as AnnualSalary
from [HumanResources].[EmployeePayHistory]
#注释:round函数--是对数据进行制定精度的取值
第一个参数是取值的数据,第二个参数是精度,
第三个参数是数据取值模式(四舍五入还是截断),其中第三个参数是可选参数,默认是四舍五入模式。
select BusinessEntityID
,(rate+5)*40*52 as AnnualSalary
from [HumanResources].[EmployeePayHistory]
#注释:sql server遵循算数运算法则,优先计算()内的
select * from [Production].[Product]
#注释:star(星号)--表的所有列,*实际工作中尽量少用,数据量特别大影响运行速度。
select Top 100 * from [Production].[Product]
注释:Top 100--表示前100行数据
Top 100 * --前100行数据的所有列
表名带方括号是直接将表拖拽进去后自动生成的,手打表名可以不带方括号。
select ProductID, Name, ProductNumber, Color, Size, ListPrice
from Production.Product
order by listprice desc --desc=descending order ; asc=ascending order
#注释:desc--倒叙排列 asc--正序排列
同时执行两个查询语句,可以分别显示两个查询结果
select ProductID, Name, ProductNumber, Color, Size, ListPrice
from Production.Product
order by listprice desc,Name
#注释:order by 可参考两个列做排序
实例 2
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
结果:
Company OrderNumber
Apple 4698
IBM 3532
W3School 2356
W3School 6953
实例 4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
结果:
Company OrderNumber
W3School 2356
W3School 6953
IBM 3532
Apple 4698
select ProductID, Name, ProductNumber, Color, Size, ListPrice
from Production.Product
order by 2
#注释:order by 2 --以select 要查询的列中,第2列做排序
某列名 as 新名称 :改列名。
isnull(某列名,‘ ’):将某列的null换为空格。
order by 数字:按第几个名称排序。这里是按name排序
*表示选中整个表
selece是指定表内的列,可写入具体的列名或者用 * 显示该表内的所有列。
from 后面加入表名(意思是要在这个表内进行操作)
order by (按指定顺序排列)
SELECT Top 100 * from + 表名 +order by listprice desc,Name<br>
--从表中选这前100行,listprice列按照倒序,Name按照默认正序进行排列;
--当改成order by 2 时表示按照所给列的第二列进行正序排列
2.Isnull函数:判断某一数据是否为空
SELECT ProductID, Name, ProductNumber, isnull(Color,'') as Color, isnull(Size,'') as Size, ListPrice from Production.Product
在Production.Product表中选择ProductID,Name,ProductNumber,Color,Size,ListPrice列的信息,并将Color和Size列的应该显示为 Null (空值)的信息用空格取代的同时,列名称重命名为Color和Size
3.SELECT ProductID, Name as ProductName,
'The list price for ' + ProductNumber + ' is $ ' + convert(varchar,ListPrice) + '.' ,
'The list price for ' + ProductNumber + ' is $ ' + convert(varchar,ListPrice) + '.' as Descirption ,
FROM Productoon.Product
从Production.Product表中选择ProductID和Name并把Name重命名为ProductName,并增加两列填入数据
‘The list price for ' + ProductNumber + ' is $ ' + convert(ListPrice价格变为varchar形式),
并将第四列命名为Discription.
4.round函数用于把数值字段舍入为指定的小数位数
2代表的意思是按照第二个name(column列),来进行排列
1、默认正序排列,asc-正序,desc-倒序
2、order by 2表示按照select中的第个条件默认排序
3、isnull(行名,'') 目的是使值为null的元组在查询结果中以空白显示
4、as关键字:给表列起别名
5、+关键字:将列与字符串连接起来
6、算术表达式:+、-、*、/
小时工资*8h*5days*52weeks=年薪
Topic6中---round(rate*40*52,1),1表示小数点后四舍五入保留1位
----round(rate*40*52,0),0表示小数点后四舍五入直接进位到个位
算数运算符中()优先级最高
7、
desc :倒叙排列;
asc:正序排序
desc--由大到小倒序排列
asc--由小到大正序排列
order by column desc/asc
select Top 100 * From table_name
必须要加*号
优先级运算需加()
as clor 修改列名称
order by 2 # 按照Name 第二个属性排列下来A B C
order by 按倒序和名字排列
查询多个条件用,分隔