--SQL查询每个表的字段数量select b.[name], count(*) As AllCount,ISNULL(ISNULL(sum(case when isnullable=0 then 1 end),null),null) as NotNullCountfrom syscolumns aINNER JOIN( select [id], [name] from [sysobjects] where [type] = 'u' ) AS b ON a.id = b.[id] GROUP b…
   奇怪的慢sql 我们先来看2条sql 第一条: select * from acct_trans_log WHERE  acct_id = 1000000000009000757 order by create_time desc limit 0,10    第二条:  select * from acct_trans_log WHERE  acct_id = 1000000000009003061 order by create_time desc limit 0,10 表的索引及数据总…
SqlServer按照指定顺序对字段进行排序 问题如下,在SqlServer有一个这样的SQL查询 SELECT *FROM ProductWHERE ID IN ( 12490, 12494, 12486 ) 在一个名为Product的表中对自增字段ID做in查询,他希望查出来的记录ID字段按照12490,12494,12486这个顺序来排,但是很不幸的是查出来后的记录是按照ID的进行正排序 这并不符合他的要求.     查出的结果如下: 由于对SQL实在是不熟悉,于是我查了点资料,发现可以用…
本文出处:http://www.cnblogs.com/wy123/p/6189100.html 标题有点拗口,来源于一个开发人员遇到的实际问题 先抛出问题:一个查询没有明确指定排序方式,那么,第二次执行这个同样的查询的时候,查询结果会不会与第一次的查询结果排序方式完全一样? 答案是不确定的,两个完全一样的查询,结果也完全一样,两次(多次)查询结果的排序方式有可能一致,有可能不一致. 如果不一致,又是什么原因导致同样的查询默认排序方式不一致? 以下简单分析几种情况,说明为什么查询同样的查询会出现…
注: 1. 当前面的排序存在重复的项,后面的排序才会起作用. [示例1]:前面的排序不存在重复的项 [示例2]:前面的排序存在重复的项…
--例如: id NAME VALUE 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii --id是主键 --要求得到这样的结果 id NAME VALUE 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii --方法1 DELETE YourTable WHERE [id] NOT IN (SELECT MAX([id]) FROM YourTable GROUP BY (NAME + VALUE)) --…
使用CONTAINS关键字查询NCLOB字段 SELECT  FORMATTED_MESSAGE    FROM     TBL_LOG WHERE     CONTAINS(FORMATTED_MESSAGE, p_FORMATTED_MESSAGE) > 0;…
oracle认为 null 最大. 升序排列,默认情况下,null值排后面. 降序排序,默认情况下,null值排前面. 有几种办法改变这种情况: (1)用 nvl 函数或decode 函数 将null转换为一特定值 (2)用case语法将null转换为一特定值(oracle9i以后版本支持.和sqlserver类似): 1.当值为某个值的时候,指定排序的时候的位置  select * from (  select 1 t from dual  union all  select 2 t  fro…
在统计某种数据名称是否存在规律时,可以通过group by进行统计,但是有时候存在钱几个字符相同,后面字符不同的情形.这样可以通过按照前几个字符串进行统计,SqlServer和Oracle中都可以使用left()函数实现.具体使用方法为left(col_name,N),其中col_name为列名,N为左起前N个字符. https://docs.microsoft.com/zh-cn/sql/t-sql/functions/left-transact-sql…
表年份 月份 数据1 数据22000 1 1 12000 2 2 12001 2 2 2 2001 5 5 4 希望的查询结果如下所示: 时间 数据1 数据22000年1月 1 12000年2月 2 12001年2月 2 22001年5月 5 4第一种:我没试过select 年份||'年'||月份||'月' 时间,数据1,数据2from tb第二种:亲测可用,如果不需要年月的单位可以直接去掉select concat(concat(年份,'年'),concat(月份,'月')) 时间,数据1,数…