select * from [dbo].[Sys_MemberKey] a where exists(select * from [Sys_MemberKey] b where a.FMachineCode<>'' and a.FKeyID=b.FKeyID and a.FMemberID<>b.FMemberID) 一个相同的表根据一个字段,查找另外一个字段不相同值,经测试可用
sql查询某字段的相同值: SELECT * FROM table WHERE col in (SELECT col FROM table GROUP BY col HAVING COUNT (col) >1); 顺带说一下where和having: select * from tablewhere ···(只能对分组前的属性进行筛选)group by ···(按某个字段分组)having ···(只能对分组后的每个组的整体属性进行筛选,用聚合函数体现)--不使用group by就默认表的整
比如 insert into table a (a1,b1)values("a1",''); 对于这种情况,因为表里存的是'',其实是没有内容的,要查询这个字段,不能直接使用 select * from a where b1=''; sql中判断非空不能用等号,因为null在sql中被看作特殊符号,必须使用关键字 is和not应该如此使用: select * from A where b1 is null 或者: select * from A where b1 is not null
SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ',' + b FROM #tb WHERE a = t.a FOR xml path('')), 1, 1, '' )AS b from # tb AS t GROUP BY a; 先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉. 具体实现参考:http:/
oracle中的clob类型字段不能直接显示出来,需要借助Oracle系统dbms_lob中substr方法处理,如select dbms_lob.substr(clobField) from table 如果内容输出不全,进行如下设置 set heading off 不输出结果第一行的标题 (字段名称) set long 40000 设置输出的字节数(比较大数)
SELECT * FROM dbo.SBD_WAYBILL_GOODS WHERE WG_SW_ID ) ORDER BY WG_ID SELECT * FROM dbo.SBD_WAYBILL WHERE SW_JOURNAL_NUMBER ) SELECT DISTINCT SW_JOURNAL_NUMBER FROM dbo.SBD_WAYBILL DELETE dbo.PDA_ERROR WHERE PE_ERRORVALUE IN(SELECT MAX(PW_ID) ) SELECT