当前位置:首页 » 编程语言 » sql类似

sql类似

发布时间: 2022-12-18 23:04:04

‘壹’ sql语言中是否有类似于C语言的for语句

标准的sql是没有的,但好多数据库它自己集成了自己的sql,这部分语句大多都有循环和条件等常用语句!建议你用的什么数据库在查相关语句!

‘贰’ 关于SQL中如何比较方便的查询多个类似的字段

那就得动态拼接字符串了,比如 select a.name from sys.columns as a join sys.tables as b on a.object_id = b.object_id and b.name = '你的表名' 以上脚本SQL2008可用。

‘叁’ SQL中有没有类似sleep的延时函数

SQL有定时执行的语句 WaitFor,可以写到一个存储过程中再执行一次

语法:WaitFor{Delay 'time'|Time 'time}

Delay后面的时间为延迟多少时间执行

Time后面的时间为指定何时执行,格式为"HH:MM:SS",不支持日期

例:

------指定10:00执行

Begin

waitfor time '10:00'

select * from tablename

end

-----指定等待1小时后执行

begin

waitfor delay '1:00'

select * from tablename

end

dbms_lock.sleep(n)暂停n秒后执行

一般这个包都会创建,但是权限不是默认就赋予的;还有一个重要的步骤是要给用户all on dbms_lock 权限。。

在DBA身分下

grant execute on dbms_lock to USERNAME;

放到存贮过程里

1.WAITFOR

--WAITFOR

--例 等待1 小时2 分零3 秒后才执行SELECT 语句

waitfor delay '01:02:03'

select * from employee

--例 等到晚上11 点零8 分后才执行SELECT 语句

waitfor time '23:08:00'

select * from employee

‘肆’ SQL类似京东淘宝产品属性的筛选功能

select PID,max(case when 类别 = '品牌' then name else '' end) 品牌,
max(case when 类别 = '接口' then name else '' end) 接口
from Goods_Attribute a join 属性表 b
on a.AID = b.AID
group by a.PID

如果属性可以随意增加,则根据属性做游标,拼出上面的语句。
declare @sql varchar(max)
declare @c_类别 varchar(100)

set @sql = 'select PID,'

declare cur_属性 cursor for
select distinct 类别 from 属性表
open cur_属性
fetch cur_属性 into @c_类别
while @@FETCH_STATUS = 0
begin
set @sql = @sql + 'max(case when 类别 = ''' + @c_类别 + ''' then name else '''' end) ' + @c_类别 + ','
fetch cur_属性 into @c_类别
end
close cur_属性
deallocate cur_属性

set @sql = @sql + '1 noshow from Goods_Attribute a join 属性表 b on a.AID = b.AID group by a.PID '

exec ( @sql )

‘伍’ sql如何实现类似统计的功能

SQL中没有直接提供这种按组查询的方法,你可以去写可存储过程或者自定义函数去实现,很简单,也就3到4行就行,如果选出包含english的可以使用SQL中的字符串匹配函数去找english这个字符串,只需要让这个得出的值大于0就认为他找到对应的字符串了。

如果还不明联系我
我写具体的存储过程给你

‘陆’ sql 一个类似like的查询

这个简单的!假设你的user表 字段为 num 的值1000,10001,4444,2111
可这样

select * from (select * from user where num like'%1000%')A
where A.num not like'%10001%'

或者

select * from user where num like'%1000%' and
num not like'%10001%'

‘柒’ sql如何实现类似统计的功能

很幸运的是MYSQL也有这个函数

SELECT class_No,GROUP_CONCAT(course_Name)
FROM Class
GROUP BY class_No

‘捌’ PL/SQL的类似语言

功能近似PL/SQL的程序语言和其他关系型数据库:
SybaseASE、Microsoft SQL Server的Transact-SQL,PostgreSQL数据库的PL/pgSQL(模仿PL/SQL)和IBM DB2的SQL PL,都符合ISOSQL的SQL/PSM标准。

‘玖’ sql中类似循环方法语句怎么写急!急

create table a_lyh_test
as
select 'A' as "字段1" , 500 as "字段2" from al
union all
select 'B' as "字段1" , 300 as "字段2" from al
union all
select 'B' as "字段1" ,400 as "字段2" from al
union all
select 'B' as "字段1" , 600 as "字段2" from al
union all
select 'A' as "字段1" , 200 as "字段2" from al
;

select f.字段1
,ltrim(max(sys_connect_by_path(f.字段2,','))
keep (dense_rank last order by f.pnum),',') as 字段2
from
(
select t.字段1
,t.字段2
,row_number() over(partition by t.字段1 order by t.字段1) as pnum
,row_number() over(partition by t.字段1 order by t.字段1)-1 as lnum
from
(
select a.字段1,a.字段2
from a_lyh_test a
) t
) f
group by f.字段1
connect by f.lnum = prior f.pnum and f.字段1 = prior f.字段1
start with f.pnum = 1;

‘拾’ sql怎样完成类似数据透视表那样的功能

这个建议另建一张表,按照最终需求的表结构建好表3,然后
insert into 表3(姓名,学号) as select 姓名,学号 from 表1;
update 表3 set 数学=表2.score from 表2,表3 where 表2.学号=表3.学号 and 表2.subject=数学;
update 表3 set 语文=表2.score from 表2,表3 where 表2.学号=表3.学号 and 表2.subject=语文;
抱歉大概意思明白吧,字段名我没仔细对哈。

热点内容
落樱小屋哪里下载安卓 发布:2025-01-27 12:35:13 浏览:71
微信服务器IP跳转 发布:2025-01-27 12:26:54 浏览:73
oracle自动备份脚本linux 发布:2025-01-27 12:21:40 浏览:936
pop服务器密码怎么填 发布:2025-01-27 12:20:02 浏览:968
oraclesqlnumber 发布:2025-01-27 12:04:22 浏览:849
如何看三才配置数理暗示力 发布:2025-01-27 12:04:15 浏览:811
我的世界离线2b2t的服务器 发布:2025-01-27 11:51:25 浏览:144
网站被异常篡改访问有风险 发布:2025-01-27 11:50:01 浏览:431
光遇国际服脚本全部图 发布:2025-01-27 11:47:40 浏览:139
ios资源加密 发布:2025-01-27 11:36:33 浏览:816