SQL Server 多表Update 及其排序

1.工作中需要excel 导入到数据库,并修改相关表 导入就不提了.[商品修改价格] 导入的execl 表 SaleShopPrice 商品价格表

UPDATE SaleShopPrice
SET SaleShopPrice.SalePrice=商品修改价格.新销价
,SaleShopPrice.CostPrice=商品修改价格.新成本价
FROM SaleShopPrice,商品修改价格
WHERE  CAST(SaleShopPrice.SID AS VARCHAR(20))=CAST(商品修改价格.编号 as varchar(20))

这样就完成了一个表以另外一个表的条件和值进行修改.

2.临时表插入数据的两种方法

(1) select .... into  #o from table         插入数据到临时表

(2) insert into #o select ... from table  插入数据到临时表

两种区别在于 (1) 不需要先创建表结构,临时表会根据 select 的字段及其类型自动创建此类型的临时表,而(2)需要先创建表结构,然后才能插入数据到临时表

3.SQL 分组的注意事项

(1) select top 1 * from table order by t1 desc,t2 desc

(2) select top 1 * from table order by t1,t2 desc

这两种order by (2)用过很多,以前以为是根据t1,t2字段进行从大到小的排序.工作时需要取一条,根据2个字段进行排序,t1相等时根据t2取top1.使用(2)却发现怎么也不对.后来群里问,给了(1) 问了为啥才知道期间细节.原来 order by 默认是asc 进行排序.使用t1,t2 desc 时,实际上是t1 asc,t2 desc而 t1 desc,t2 desc才是我需要的.以前从没注意的问题.

原文地址:https://www.cnblogs.com/wjbobo/p/2624051.html