SQL动态查询的示例 (sql动态查询)

教程大全 2025-07-12 07:15:09 浏览

SQL动态查询在数据库中经常用的到,下面就将为您举例说明SQL动态查询的使用,希望对您学习SQL动态查询有所帮助。

今天做了一个根据动态生成表明来查询相关结果的存储过程,由于表名是动态生成,因此使用了SQL Server的动态查询,函数sp_executesql。需要统计的表是根据规则动态生成,格式如下:

因此在这里考虑使用SQL提供的sp_executesql 函数,它可以执行动态的修改,查询,删除功能。该函数官方详细文档,如下:

Sp_executesql:执行可以多次重复使用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。

语法 :

【编辑推荐】

使用SQL语句查询时间段

巧用SQL语句删除重复记录

sql存储过程和动态sql的比较

您了解三类SQL存储过程

SQL修改列及表名的问题


sql分组查询

-- SQLSERVER 语句 select ,(case when 0 then(select count(*)From record r1 where 1 = and = 0) else(select count(*) from record r1 where 2 = and = 0) end) as 及格,(case when 0 then(select count(*)from record r1 where 1 = and = 1) else(select count(*) from record r1 where 2 = and = 1) end) as 良,(case when 0 then(select count(*)from record r1 where 1 = and = 2) else(select count(*) from record r1 where 2 = and = 2) end) as 优秀from CLASS c ---OracLE 写法 select , (decode(,0,(select count(*)from record r1 where 1 = and = 0), (select count(*) from record r1 where 2 = and = 0)))jige, (decode(,0,(select count(*)from record r1 where 1 = and = 1), (select count(*) from record r1 where 2 = and = 1)))liang, (decode(,0,(select count(*)from record r1 where 1 = and = 2), (select count(*) from record r1 where 2 = and = 2)))youxiu from CLASS c

SQL语句完成以下查询,急了~~~

答案来啦!~~!一定要采纳!

(1) CREATE TABLE 职工 (

职工号 CHAR(8) PRIMARY key,

姓名 CHAR (8) NOT NULL,

年龄 SMALLINT,

性别 CHAR (2),

CONSTRAINT C1 CHECK (性别 IN (男, 女)))

CREATE TABLE 社会团体 (

编号 CHAR(8) PRIMARY KEY,

名称 CHAR(8) NOT NULL,

负责人 CHAR(8),

活动地点 VARCHAR(50),

CONSTRAINT C2 FOREIGN KEY(负责人) REFERENCES 职工(职工号))

CREATE TABLE 参与 (

职工号 CHAR(8),

编号 CHAR(8),

CONSTRAINT C3 PRIMARY KEY(职工号,编号),

CONSTRAINT C4 FOREIGN KEY (职工号) REFERENCES 职工(职工号))

(2) CREATE VIEW 社团负责人(编号, 名称, 负责人职工号, 负责人姓名, 负责人性别)

AS SELECT 编号, 名称, 负责人, 姓名, 性别

FROM 社会团体, 职工

WHERE 社会团体.负责人=职工.职工号

FROM 职工, 社会团体, 参与

WHERE 职工.职工号=参与.职工号 AND 参与.编号=社会团体.编号

(3) SELECT DISTINCT 职工.职工号, 姓名

FROM 职工, 社会团体, 参与

WHERE 职工.职工号=参与.职工号 AND 参与.编号=社会团体.编号

AND 社会团体.名称 IN(羽毛球队,秧歌队,冬泳队)

(4) SELECT 职工号, 姓名

FROM 职工

WHERE 职工号 IN

(SELECT 职工号

FROM 参与

WHERE 编号 IN

(SELECT 编号

FROM 社会团体

WHERE 名称=冬泳队))

AND 年龄>50

(5) SELECT 编号, 名称

FROM 社会团体

WHERE 负责人 IS NULL

(6) SELECT *

FROM 职工

WHERE NOT EXISTS (

FROM 参与

WHERE 参与.职工号=职工.职工号)

(7) SELECT AVG(年龄)

FROM 职工

WHERE 姓名 LIKE 李% AND 性别=男 AND EXISTS (

sql动态查询

FROM 参与

WHERE 参与.职工号=职工.职工号)

(8) SELECT *

FROM 职工 AS E1

WHERE E1.姓名<>肖波 AND EXISTS

(SELECT J1.编号

FROM 参与 AS J1

WHERE J1.职工号=E1.职工号 AND J1.编号 = ANY

(SELECT J2.编号

FROM 职工 AS E2, 参与 AS J2

WHERE E2.职工号=J2.职工号 AND E2.姓名=肖波))

(9) SELECT *

FROM 职工

WHERE ((年龄 BETWEEN 45 AND 55) AND 性别=女) OR

((年龄 BETWEEN 50 AND 60) AND 性别=男)

(10) SELECT *

FROM 职工

WHERE NOT EXISTS (

FROM 参与

WHERE NOT EXISTS (

FROM 社会团体

WHERE 参与.职工号=职工.职工号 AND 参与.编号=社会团体.编号))

(11) SELECT 职工号

FROM 职工

WHERE NOT EXISTS (

FROM 参与 AS 参与1

WHERE 参与1.职工号=0001 AND NOT EXISTS(

FROM 参与 AS 参与2

WHERE 参与2.编号=参与1.编号 AND参与2.职工号=职工.职工号))

(12) SELECT 姓名

FROM 职工

WHERE 年龄>(

SELECT 年龄

FROM 职工, 社会团体

WHERE 社会团体.负责人=职工.职工号 AND 社会团体.名称=秧歌队)

(13) SELECT 姓名

FROM 职工

WHERE 年龄>ALL(

SELECT 年龄

FROM 职工, 社会团体,参与

WHERE 社会团体.编号=参与.编号 AND 职工.职工号=参与.职工号

AND 社会团体.名称=秧歌队)

(14) SELECT 社会团体.名称 ,COUNT(参与.职工号)

FROM 社会团体,参与

WHERE 社会团体.编号=参与.编号

GROUP BY 参与.编号,社会团体.名称

(15) SELECT 社会团体.名称, COUNT(参与.职工号)

FROM 社会团体, 参与

WHERE 社会团体.编号=参与.编号

GROUP BY 参与.编号,社会团体.名称

HAVING COUNT(参与.职工号)<=ALL (

SELECT COUNT(参与.职工号)

FROM 参与

GROUP BY 参与.编号)

(16) SELECT 社会团体.名称, 职工.姓名

FROM 职工, 社会团体, 参与

WHERE 社会团体.编号=参与.编号

AND 社会团体.负责人=职工.职工号

GROUP BY 参与.编号,社会团体.名称, 职工.姓名

HAVING COUNT(参与.编号)>20

SQL四表查询

exec= select id,title,fid,showvideo from zm_video where school=1 and tuijian=1 union all select id,title,fid,shownews fromzm_news where school=1 and tuijian=1union all select id,title,fid,showdown from zm_down where school=1 and tuijian=1 union all select id,title,fid,showproduct from zm_product where school=1 and tuijian=1

使用union all 语句,然后建立记录集rs,rs(0)是取id,rs(1)是取title,rs(2)是取fid,rs(3)是取showvideo,shownews,showdown,showproduct,因为你要给不同的表加上不同的连接,这样就可以实现,直接调用rs(3)也就取得了不同的表相应的字符串。

union all语句就是把这四个表的记录合并为一个,但要注意的是要查询的字段数目必需相同

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐