☆ 获取数据库所有表名,表的所有列名
select name from sysobjects where xtype='u'
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')
☆ 递归查询数据
Sql语句里的递归查询 SqlServer2005和Oracle 两个版本
以前使用Oracle,觉得它的递归查询很好用,就研究了一下SqlServer,发现它也支持在Sql里递归查询
举例说明:
SqlServer2005版本的Sql如下:
比如一个表,有id和pId字段,id是主键,pid表示它的上级节点,表结构和数据:
CREATE TABLE [aaa](
[id] [int] NULL,
[pid] [int] NULL,
[name] [nchar](10)
)
GO
INSERT INTO aaa VALUES(1,0,'a')
INSERT INTO aaa VALUES(2,0,'b')
INSERT INTO aaa VALUES(3,1,'c')
INSERT INTO aaa VALUES(4,1,'d')
INSERT INTO aaa VALUES(5,2,'e')
INSERT INTO aaa VALUES(6,3,'f')
INSERT INTO aaa VALUES(7,3,'g')
INSERT INTO aaa VALUES(8,4,'h')
GO
--下面的Sql是查询出1结点的所有子结点
with my1 as(select * from aaa where id = 1
union all select aaa.* from my1, aaa where my1.id = aaa.pid
)
select * from my1 --结果包含1这条记录,如果不想包含,可以在最后加上:where id <> 1
--下面的Sql是查询出8结点的所有父结点
with my1 as(select * from aaa where id = 8
union all select aaa.* from my1, aaa where my1.pid = aaa.id
)
select * from my1;
--下面是递归删除1结点和所有子结点的语句:
with my1 as(select * from aaa where id = 1
union all select aaa.* from my1, aaa where my1.id = aaa.pid
)
delete from aaa where exists (select id from my1 where my1.id = aaa.id)
Oracle版本的Sql如下:
比如一个表,有id和pId字段,id是主键,pid表示它的上级节点,表结构和数据请参考SqlServer2005的,Sql如下:
--下面的Sql是查询出1结点的所有子结点
SELECT * FROM aaa
START WITH id = 1
CONNECT BY pid = PRIOR id
--下面的Sql是查询出8结点的所有父结点
SELECT * FROM aaa
START WITH id = 8
CONNECT BY PRIOR pid = id
今天帮别人做了一个有点意思的sql,也是用递归实现,具体如下:
假设有个销售表如下:
CREATE TABLE [tb](
[qj] [int] NULL, -- 月份,本测试假设从1月份开始,并且数据都是连续的月份,中间没有隔断
[je] [int] NULL, -- 本月销售实际金额
[rwe] [int] NULL, -- 本月销售任务额
[fld] [float] NULL -- 本月金额大于任务额时的返利点,返利额为je*fld
) ON [PRIMARY]
现在要求计算每个月的返利金额,规则如下:
1月份销售金额大于任务额 返利额=金额*返利点
2月份销售金额大于任务额 返利额=(金额-1月份返利额)*返利点
3月份销售金额大于任务额 返利额=(金额-1,2月份返利额)*返利点
以后月份依次类推,销售额小于任务额时,返利为0
具体的Sql如下:
复制代码 代码如下:
WITH my1 AS (
SELECT *,
CASE
WHEN je > rwe THEN (je * fld)
ELSE 0
END fle,
CAST(0 AS FLOAT) tmp
FROM tb
WHERE qj = 1
UNION ALL
SELECT tb.*,
CASE
WHEN tb.je > tb.rwe THEN (tb.je - my1.fle -my1.tmp)
* tb.fld
ELSE 0
END fle,
my1.fle + my1.tmp tmp -- 用于累加前面月份的返利
FROM my1,
tb
WHERE tb.qj = my1.qj + 1
)
SELECT *
FROM my1
SQLserver2008使用表达式递归查询
--由父项递归下级
with cte(id,parentid,text)
as
(--父项
select id,parentid,text from treeview where parentid = 450
union all
--递归结果集中的下级
select t.id,t.parentid,t.text from treeview as t
inner join cte as c on t.parentid = c.id
)
select id,parentid,text from cte
---------------------
--由子级递归父项
with cte(id,parentid,text)
as
(--下级父项
select id,parentid,text from treeview where id = 450
union all
--递归结果集中的父项
select t.id,t.parentid,t.text from treeview as t
inner join cte as c on t.id = c.parentid
)
select id,parentid,text from cte
相关推荐:
在线AI写文:开启高效创作新时代
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
SEO站群:打造强大网络营销引擎,助力企业快速提升排名与流量,seo网站排名案例
优化综合:引领高效发展的智慧之道,电影营销的推广方式
SEO埋词技巧,如何提升网站排名?,贵州营销推广方法
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
SEO优化基础:让你的网站脱颖而出的秘密武器,模仿猫ai
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
SEO深度解析:如何通过深度优化提升网站排名,带来流量和转化,咸宁网站建设大概费用
优化网站的秘诀:提高网站速度与用户体验,助力业务腾飞,旅游网站建设步骤
SEO在广告领域的深度解析:如何利用SEO提升广告效果,网文写作ai工具
“新关键词”开启智慧营销新篇章,助力品牌突围,自己如何做网站seo
创作新时代:自动生成文章AI的魅力与未来
ChatGPT异常了:人工智能的极限与突破,ai and ethics
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai
优化投入,让企业更具竞争力,怎样推广营销方案
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
SEO总计:如何通过SEO优化实现网站流量和排名的飞跃,三元桥网站优化
文章缩写AI:高效编辑的未来之光
怎么用AI生成文章?全新写作方式的揭秘与应用指南
seo竞价做的什么工作,seo 竞价 ,office智能ai
什么是seo优化营销,seo主要优化什么 ,ai绘画国风古韵
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
seo用什么手法,seo方式 ,ai绘画飞翔
seo用什么法宝,列出5种seo赚钱方式 ,ai怎么更改文档样式
SEO领站-从零到一打造成功网站排名的秘密,轻淘客seo怎设置
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
打造内容创作新时代:有言AI生成助力创作者释放灵感
seo简报什么意思,seo工作汇报 ,万花筒 ai
SEO化学物质:如何在化工行业提升搜索引擎排名和品牌曝光,rack ai
SEO单页网站:助力企业在线营销的一站式解决方案,湖南视频网站优化方式
ChatGPT崩了?用户称打开是一片空白,背后隐藏了什么?,ai 新技巧
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
seo系列什么意思,seo的分类 ,que n ai je
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
什么是seo技术,什么是seo及seo的作用 ,AI倒放仓鼠
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
GPT优化:让你的工作与生活更高效、更智能,Ai__79
360AI写作怎样?助力创作的新风尚,ai到访
OpenAIGPT:开启智能时代的语言革命,ai辣妹动漫
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
SEO怎么排名?这5大技巧,轻松提升网站排名,人人都可ai
为什么关键词太少会影响你的网络营销效果?,陕西seo网站推广工具
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai