當前位置:首頁 » 編程語言 » 寫過最難的sql語句
擴展閱讀
uc緩存不保持播放進度 2022-10-03 10:19:14
比xb還大的存儲單位 2022-10-03 10:16:26

寫過最難的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 (@正常值[email protected]一般異常值)>(a.TCH分配成功率_Mean [email protected]正常值)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<[email protected]
begin
set @cen_str=substring(@s,@a,1)
if ascii(@cen_str)>=65 and ascii(@cen_str)<91
begin
set @[email protected][email protected]_str
end
set @[email protected]+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 [email protected]
OPEN cur
FETCH next FROM cur INTO @dept
WHILE @@FETCH_STATUS = 0
begin
FETCH next FROM cur INTO @dept
set @all = @[email protected]+ ','
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