--查找指定表的索引
SELECT indexname = a.name , tablename = c. name , indexcolumns = d .name , a .indid
FROM sysindexes a JOIN sysindexkeys b ON a .id = b .id AND a .indid = b.indid
JOIN sysobjects c ON b .id = c .id
JOIN syscolumns d ON b .id = d .id AND b .colid = d .colid
WHERE a .indid NOT IN ( 0 , 255 )
-- and c.xtype='U' and c.status>0 -- 查所有用户表
AND c .name = 'MemberFinancialPlannerLog' --查指定表
---查询整个数据库外键关系
select osub.name as [ 子表名称 ],
fk.name as [ 外键名称 ],
subcol.name as [ 子表列名 ],
omain.name as [ 主表名称 ],
maincol.name as [ 主表列名 ]
from sys.foreign_keys fk
join sys.all_objects osub
on (fk.parent_object_id = osub.object_id)
join sys.all_objects omain
on (fk.referenced_object_id = omain.object_id)
join sys.foreign_key_columns fkcols
on (fk.object_id = fkcols.constraint_object_id)
join sys.columns subcol
on (osub.object_id = subcol.object_id and
fkcols.parent_column_id = subcol.column_id)
join sys.columns maincol
on (omain.object_id = maincol.object_id and
fkcols.referenced_column_id = maincol.column_id)
-- 统计订单金额累计>=10000的用户 最近的5笔交易记录
select * from (
select t1.ID, t1.[Money], t1.InitialTime, t1.[User], u1.Name,u1.Mobile, row_number() over(partition by t1.[User] order by t1.InitialTime desc) as num
from [TradeFictitious] t1
join
(
select [User] from TradeFictitious
group by [User]
having sum(Money)>=100000
) as j1
on t1.[User] = j1.[User]
left join [User] u1
on t1.[User] = u1.ID)T
where num<=5
go
--统计当天注册用户
select * from [User] where CAST(RegisterTime as date)=CAST(GETDATE() as date)
select * from [User] where CONVERT(varchar(11),RegisterTime,120)=CONVERT(varchar(11), GETDATE(), 120)
--统计近七天、近一个月注册用户
select * from [User] where RegisterTime > cast(DATEADD(DAY,-7,GETDATE()) as date) --7天
select * from [User] where RegisterTime > cast(DATEADD(MONTH,-1,GETDATE()) as date) --1个月
--列转行
SELECT STUFF((SELECT ','+ CAST(Id as varchar(50)) FROM Member FOR XML PATH('')),1,1,'')