select * from tuser where userno not in(select userno from filter_barcode) 上面这条语句子查询里,userno 并不存在filter_barcode表中,但是整个语句确能正常执行(执行子查询的话会报字段不存在的提示),而且返回的是tuser表中所有的结果集.如果大家不注意这种情况,一旦不是用来查询,是用来删除的,那整个表数据就被不知不觉给删除了. 原因:原来是在不使用表别名的前提下如果in子查询里字段在内表找不到就会去引用
现有两表A(大).B(小)作关联查询,SQL语句如下: SQL1:select * from A,B where A.id = B.id SQL2:select * from A,B where B.id = A.id 在写SQL的时候可能这个顺序都是随便写的,当然SQL1和SQL2 执行的结果是完全相同的,那效率是否也一样呢,答案是否定的.SQL1 相当于将A表的id取出来,然后遍历B表进行查询,SQL2相当于将B表的id取出来,然后遍历A表进行查询.如果表A的记录条数为m,表B的记录条数为n
SQL中只有两列数据(字段1,字段2),将其相同字段1的行转列 转换前: 转换后: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([MDF_LOT_NO] int,[ERP_MODE_CD] int) Insert #T , union all , union all , union all , Go --测试数据结束 DECLARE @name VARCHAR(max),@sql
这是上一个sql更新某表字段的一个延伸,在更新表数据时,实际上会有多表数据查询场景,查询后,只需要更新某一个表中的数据,以下提供两个方法, 第一种使用update 两表查询 update api_manage_apicollectioninfo_copy a, api_manage_apicollectionmanage b set a.header=replace(a.header,'XXXDDD','zhangjun') WHERE a.api_collection_id=b.id and
在ms sql server实现动态呈现列的方法很多.下面Insus.NET解决也算是另外一种参考. 如: 准备实现功能的数据: ) NOT NULL PRIMARY KEY) INSERT INTO [dbo].[Timing] VALUES (N'周五.晚上'), (N'周六.中午'), (N'周六.晚上'), (N'周日.中午'), (N'周日.晚上') GO SELECT [When] FROM [dbo].[Timing] GO Source Code 另一份数据: CREATE TA
ORDER BY 后可加2个字段,用英文逗号隔开. 1.f1用升序, f2降序,sql该这样写: 1 ORDER BY f1, f2 DESC 2.也可以这样写,更清楚: 1 ORDER BY f1 ASC, f2 DESC 3.如果都用降序,必须用两个desc: 1 ORDER BY f1 DESC, f2 DESC
https://www.cnblogs.com/downmoon/archive/2012/05/04/2482995.html SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引 前几天在项目中遇到一个问题,需要从SQL Server导出表到Excel,但需要带列名.晚上尝试了几种方法,并作个小结. 假定表如下: USE testDb2 GO IF NOT OBJECT_ID('Demo_A') IS NULL DROP TABLE [Demo_A] /*****
------ row number ---------- ------ row number ---------- declare @pageSize int,@pageIndex int ; select * from ( SELECT ROW_NUMBER() OVER(ORDER BY Byod_ZZFP.ID DESC) as rowID ,Byod_ZZFP. )T ) and rowID <= @pageSize * (@pageIndex)) order by ID desc --
获取指定表列名及备注: select * from syscolumns where id=object_id(N'表名') SELECT a.name [column], b.name type, a.prec length, isnull(c.value, ' ') [description] FROM syscolumns a LEFT OUTER JOIN systypes b ON a.xusertype = b.xusertype LEFT OUTER JOIN sys.extend
select * from table1 union all select * from table2 union all 是所有的都显示出来: select * from table1 union select * from table2 union 是只显示不重复的,如果两个表的字段部分相同,把查询的字段写出来亦可
1前话 项目内实现了一新功能:克隆数据库. 2目标 克隆并非用SQLSERVER克隆,故完毕后需要检查各表内一些数据与原表一致性.一些表中的某一些列容许不一致. 3实现 将两表的需要检查的几列取出,相加每行checksum作为本表数据特征,对比. 4代码 declare @col varchar(200) set @col='' select @col=@col+','+name from syscolumns where id=object_id('表') and name<>'不要的列'
抄录网址:https://blog.csdn.net/qiumuxia0921/article/details/50574879 下面是我们的建表语句: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[table1]( ) NULL, ) NOT NULL, ) NULL ) ON [PRIMARY] GO ') ') ') ') ') ') ') ') ') 我们第一个update事务为: SET TRA
换了工作又开始写SQL了. update dic_rate_package set post_next_day=t.post_next_day from dic_package t inner join dic_rate_package e on t.code=code and t.hotel_code=e.hotel_code 语句格式如上.