当前位置:首页 » 编程语言 » 写过最难的sql语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

写过最难的sql语句

发布时间: 2022-08-11 07:45:23

A. sql 一个绝对难的sql语句

select id,日期 from datetimes where id=1 union all
select id,日期 from datetimes where id in
(select id from(select a.id+1 id,(b.日期-a.日期) as 日期 from datetimes a , datetimes b
where b.id-a.id=1) where 日期>=30)

还有,你上边给的结果是错的id=4的不应该被选出来

B. mssql比较难的sql语句

declare
@正常值 double,
@一般异常值 double
...
正常小区平均值
select @正常值=avg(TCH分配成功率_Mean),avg(SD分配成功率_Mean),avg(话音信道利用率_Mean) from table where 小区关注程度='正常小区'
一般异常小区均值
select @一般异常值=avg(TCH分配成功率_Mean),avg(SD分配成功率_Mean),avg(话音信道利用率_Mean) from table where 小区关注程度='一般异常小区'
以此类推...

update table a set 小区关注程度='TCH分配成功率_Mean 大于正常' where (@正常值-@一般异常值)>(a.TCH分配成功率_Mean -@正常值)and a.小区关注程度= "一般异常小区"
一次类推...

C. 一个有点难度的SQL语句

不知楼主是否对我de脚本有兴趣

select * from a where
py like 'c%'
and substring(py,charindex(' ',py)+1,1000) like 'm%'
and substring(substring(py,charindex(' ',py)+1,3000),charindex(' ',substring(py,charindex(' ',py)+1,3000))+1,3000) like 'z%'

=================================================
3个字母的检索就写这么长,我10个字母怎么办,要把SQL语句嵌套到什么程度了 ==========================教训的是啊,技术有限啊,
那么接下来,我也在等高人,从技术角度,从算法角度,从效率角度...
等待他出现........
==============================
哎,等的无聊啊,再高手未出现前,我又看了下楼主的题目,有句话我很重视:
“我在检索的时候想检索首字母是c, m, z的记录”那就是写函数,返回字符串中的大写字母,哈,说干就干哪,
=============================

CREATE FUNCTION get_it(
@s varchar(8000) --要处理的字符串
)RETURNS varchar(8000)
AS
BEGIN

DECLARE @len int,@out_str varchar(8000),@cen_str varchar(8000),@a int
set @a=1--循环变量
set @len=len(@s)--字符长度
set @out_str=''

WHILE @a<=@len
begin
set @cen_str=substring(@s,@a,1)
if ascii(@cen_str)>=65 and ascii(@cen_str)<91
begin
set @out_str=@out_str+@cen_str
end
set @a=@a+1
end

RETURN(@out_str)
END
GO
====================================
这次你想加好多字母都行,哦也
select * from a where dbo.get_it(PY) like 'CMDASFDDFASF%'

表的数据量再大也不怕,分割表。我常常把1000W的表分割几个部分来处理。
呵呵,这个问题不回答了,祝你好运,我要朝大鸟方向奋斗啦

D. 高难度SQL语句

这个是如何算累计的问题,有多种方法:
这里举一个通用的方法:
SELECT
aa.id
, aa.积分
, SUM(bb.积分) AS 累计积分
FROM jifen_table AS aa
INNER JOIN jifen_table AS bb ON bb.id<=aa.id
GROUP BY aa.id, aa.积分
ORDER BY aa.id,aa.积分
;

就是通过jifen_table自关联,来实现累加。
累计其实就是把当前的积分和之前出现过的都加起来,
关联条件:ON bb.id<=aa.id 就是实现这个功能的。

2.方法二:
使用sum()over() 函数。
此方法oracle,db2支持,其他数据库不知道支不支持。

都是一个语句就ok的,不需要3个步骤 :)

我的空间有类似的案例:
http://hi..com/rsnetwork/blog/item/297c2301c57cea001c958305.html

E. 求一个超难的SQL语句

我是这样做出来的希望对你有帮助

在表前面加一个ID自动编号

SELECTa.抄表日期,a.本月读数,b.本月读数AS上月读数

FROM(SELECT*FROMdatenumberWHEREidnotin(selecttop1idfromdatenumber))ASa,datenumberASb

WHEREa.id-1=b.id;

F. 超难的SQL语句

select d,e,f from a,b,c order by e desc;

select d,e,f from (select d,e,f from a union
select d,e,f from b union
select d,e,f from c) order by e desc;
两个都可以吧,你试试看吧

G. 超难的SQL语句怎么写

二楼burscard的思路不错,但还有一点瑕疵,就是原表的月份字段是字符串型,直接比大小是得不到正确的顺序,比如1月,4月,11月,最大值本应该是11月,如果直接比大小的话,那么求出的最大值是4月,所以在比大小之前还需要转换一下月份字段的类型.

完善以后的代码如下:
select * from 表 a where not exists (select * from 表 where namw = a.namw and convert(int,replace([month],'月','')) > convert(int,replace(a.[month],'月','')))

H. 求教一个超难的sql语句 大虾们如能解决不胜感激

selectt4.sc,t4.gx,nvl(g1.ll,0),nvl(g2.jg,0),nvl(g3.bhg,0)
(selectsc,gx,sum(ll)asll
fromt1groupbysc,gx)g1,
(selectsc,gx,sum(jg)asjg
fromt2groupbysc,gx)g2,
(selectsc,gx,sum(bhg)asbhg
fromt3groupbysc,gx)g3,
t4
wheret4.gx=g1.gx(+)
andt4.sc=g1.sc(+)
andt4.gx=g2.gx(+)
andt4.sc=g2.sc(+)
andt4.gx=g3.gx(+)
andt4.sc=g3.sc(+)
orderbyt4.bh

I. 比较难的SQL 查询语句

create table test
(
LM varchar(2),
DEPART VARCHAR(2),
DEPARTIDE NVARCHAR(20)
)
GO
INSERT TEST VALUES('AA', 'M1', '牵头')
INSERT TEST VALUES('AA', 'M2' ,'配合')
INSERT TEST VALUES('AA', 'M3','配合')

drop proc sp_test
go
create proc sp_test
(
@LM varchar(2)
)
as
declare @dept varchar(2)
declare @all varchar(1000)
set @all = ''
declare cur cursor
for select DEPART FROM TEST where LM=@LM
OPEN cur
FETCH next FROM cur INTO @dept
WHILE @@FETCH_STATUS = 0
begin
FETCH next FROM cur INTO @dept
set @all = @all+@dept+ ','
end
if @all <> ''
select @LM as LM,@all as DEPART
close cur
DEALLOCATE cur
go

exec sp_test 'AA'

说明:搞了半个小时!终于出来了。不知楼主是不是要的这个?
我的理解是,您想要统计某个LM的DEPART,然后把得到的DEPART合成一列是吗?不是的话请再补充谢谢。
wish help.

J. 请教一个高难的SQL语句

只要一个case 语句就可以了
select s.SurveyTitle,q.QuestionDesc,
case a.Answer
when 'A' then q.OptionA

when 'B' then q.OptionB

when 'C' then q.OptionC

when 'D' then q.OptionD

end desc,a.AnswerPeople
from Answer a,Survey s,Question q

where a.SurveyId = s.SurveyId and a.QuestionId= q.QuestionId