假如表数据是:
name id
刘德华 1
张学友 2
黎明 3
杨幂 2
赵丽颖 3
现在要查出有相同id的数量,并按id顺序排列,形成如下结果:
id num
1 1
2 2
3 2
SQL语句:
SELECT id,COUNT(*) as num FROM table WHERE 1=1 GROUP BY id ORDER BY id
Just So So ...
假如表数据是:
name id
刘德华 1
张学友 2
黎明 3
杨幂 2
赵丽颖 3
现在要查出有相同id的数量,并按id顺序排列,形成如下结果:
id num
1 1
2 2
3 2
SQL语句:
SELECT id,COUNT(*) as num FROM table WHERE 1=1 GROUP BY id ORDER BY id
Id,PId无限级结构,查询某个Id的所有下级或所有上级,使用WITH AS查询:
/*查找Id为1所有的下级*/
WITH T
AS(
SELECT Id,PId,Name,0 L FROM User WHERE Id=1
UNION ALL
SELECT U.Id,U.PId,U.Name,L+1
FROM User U INNER JOIN T ON U.PId=T.Id
)
SELECT * FROM T
/*查找Id为100所有的上级*/
WITH T
AS(
SELECT Id,PId,Name,0 L FROM User WHERE Id=100
UNION ALL
SELECT U.Id,U.PId,U.Name,L+1
FROM User U INNER JOIN T ON U.Id=T.PId
)
SELECT * FROM T
在一个表中,假如有两个数值字段a,b,这两个字段每一行的值要合并成一个字段C,SQL语句写法:a + b AS c
如果字段b那一列有一行的值为NULL,按上面语句写法合并成c后,那一行会显示NULL,此时应该把NULL处理为0,加起来的数据才对头。
一,先查出目标数据库中你要找的表:
use 数据库名
SELECT * FROM sysobjects WHERE xtype='U' AND name LIKE 'wp%'
确定查出来的表都是自己想要的,如果不是,继续修改上述SQL语句,直到查准了自己想要的表