千家信息网

MSSQL 超实用的几条常用命令

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,查询:select * from 表名select * from 表名 where 条件select * from 表1,表2 where 表1字段=表2字段 [ and 条件2 ... ]selec
千家信息网最后更新 2024年09月21日MSSQL 超实用的几条常用命令

查询:

select * from 表名

select * from 表名 where 条件

select * from 表1,表2 where 表1字段=表2字段 [ and 条件2 ... ]


select 字段 from 表A JOIN 表B ON 表A字段1=表B字段1 AND 表A字段2=表B字段2 ..... WHERE <条件> 可是是表A的,也可以表B的


select A.字段,B.字段 from 表1 A JOIN 表2 B ON A.字段1=B.字段1 AND A.字段2=B.字段2 ..... WHERE <条件> 可是是表1的,也可以表2的 --表名长时可以这种别名方法 进行简写.这里 表1简写成 A , 表2 简写成 B 。



select FName from t_ICItem where FNumber in (select FNumber from t_ICItem where FNumber like '3.%')




#### join 可以换成以下几个 ######

join : 只显示A和B两表中都存在的记录

LEFT OUTER JOIN: 只要A表中有记录,则都显示出来,如果B表中没有对应的值则赋值为NULL

FULL join : 显示A/B两表的所有记录,对应表中没有值时赋值为NULL.

inner join: 跟 JOIN 相同功效




SELECT A.字段,B.字段,C.字段 FROM 表1 A(表1别名) LEFT JOIN 表2 B(表2别名) ON A.字段=B.字段 LEFT JOIN 表3 C(表2别名) ON A.字段=C.字段 [where 条件]


--用A,B,C,分别代替表1,表2,表3,达到简写的目的,再分别从三个表中取一个字段


对数据表进行复制:


先新建一个和目标数据表结构一样的新建;再执行

insert into 新表 as select * from 旧表


更新:


update 表名 set 字段名='新值' where 条件

update 表名 set 字段名='新值' where 条件1 and 条件2

update 表名 set 字段名='新值' from 表1,表2 where 表1字段=表2字段 [ and 条件2 ... ]


delete


delete from 表名 where 条件

delete from 表名 from 表1,表2 where 表1字段=表2字段 [ and 条件2 ... ]

delete 表名 where 字段1='值' and 字段1 in ( select 字段1 from 表2 where 条件2 [...] )


------------------------------------------------------------------------------------------------------------------------------------------------在查询中进行运算--------------------------------------------------------------------------------------------------------------------------------------------------

select 物料表.FNumber 物料代码,物料表.FName 物料名称,采购订单.FBillNo 订单号,采购分录表.FMrpClosed 业务行关闭,采购分录表.FQty,采购分录表.fnote 备注,

(采购分录表.FQty-ISNULL(采购分录表.FStockQty,0)) AS 未交数量



from POOrder 采购订单,POOrderEntry 采购分录表,t_ICItem 物料表


where 物料表.FItemID=采购分录表.FItemID and 采购订单.FInterID=采购分录表.FInterID and 采购订单.FClosed =0 and 采购分录表.FMrpClosed ='0'

and 采购分录表.FMrpClosed='0' and FQty-ISNULL(采购分录表.FStockQty,0) != 采购分录表.fqty --查询未关闭的采购订单



说明:(采购分录表.FQty-ISNULL(采购分录表.FStockQty,0)) AS 未交数量 --这是字段

  1. 先用采购分录表的数量-采购分录表已入库的数量,并以"未交数量"列显示出来。

  2. ISNULL():函数,当 采购分录表.FStockQty 的值为NULL 时,替换为数值0,否则报错,并无法运算。

  3. 引用时不能引用 AS 的新列,而要是引用之前的整个"运算内容":FQty-ISNULL(采购分录表.FStockQty,0)



0