SELECT
A.LDate,(SELECT Value1
FROM F0726 B
WHERE B.LDate<=A.LDate
AND B.Value1 ISNOTNULLORDERBY A.LDate
LIMIT1) Value1,(SELECT Value2
FROM F0726 B
WHERE B.LDate<=A.LDate
AND B.Value2 ISNOTNULLORDERBY A.LDate
LIMIT1) Value2
FROM F0726 A
-- distinct selectcount(distinct customer_id) cnt
from T_orders;-- group by selectcount(t.customer_id) cnt
from(select customer_id
from T_orders
groupby customer_id
) t
-- row_number() selectsum(casewhen rn=1then1else0end) cnt
from(select
customer_id,
row_number()over(partitionby customer_id orderby orderdate) rn
from T_orders
) t;-- union selectcount(customer_id) cnt
from(select customer_id
from T_orders
unionselect customer_id
from T_orders
) t
-- 方案一:利用NOT IN和SELECT TOP分页语句形式 SELECTTOP5*FROM TestTable
WHERE ID NOTIN(SELECTTOP10 ID
FROM TestTable
ORDERBY ID
)ORDERBY ID
-- 方案二:利用ID大于多少和SELECT TOP分页语句形式 SELECTTOP5*FROM TestTable
WHERE ID >(SELECTMAX(id)FROM(SELECTTOP10 id
FROM TestTable
ORDERBY id
)AS T
)ORDERBY ID
-- 方案三:利用SQL Server中的特性ROW_NUMBER进行分页 SELECT*FROM(SELECT ROW_NUMBER()OVER(ORDERBY ID)AS rn,*FROM TestTable
)AS mytable
where rn between11and15-- 扩展:返回随机5条记录 SELECTTOP5*FROM TestTable
ORDERBY NEWID();
-- 方法一:开窗函数 SELECT
OrderDate,
Amount,SUM(Amount)OVER(ORDERBY OrderDate) Amount
FROM Add_Num
-- 方法二:子查询 SELECT
A.OrderDate,(SELECTSUM(B.AMOUNT)FROM ADD_NUM B
WHERE B.OrderDate <= A.OrderDate ) Amount
FROM ADD_NUM A
-- 方法三:笛卡尔积 SELECT A.OrderDate,SUM(B.AMOUNT) Amount
FROM ADD_NUM A
CROSSJOIN ADD_NUM B
WHERE B.OrderDate <= A.OrderDate
GROUPBY A.OrderDate
-- 方法一:case when SELECT
A.机房,SUM(CASEWHEN B.主机状态=0THEN1ELSE0END)'0',SUM(CASEWHEN B.主机状态=1THEN1ELSE0END)'1',SUM(CASEWHEN B.主机状态=2THEN1ELSE0END)'2'FROM F0805A A
LEFTJOIN F0805B B
ON A.ID=B.机房ID
GROUPBY A.机房
-- 方法二:PIVOT SELECT*FROM(SELECT A.机房,B.主机名称,B.主机状态
FROM F0805A A
LEFTJOIN F0805B B
ON A.ID=B.机房ID
) X PIVOT(COUNT(主机名称)FOR 主机状态 IN([0],[1],[2])) XX