一道SQL題
王工出的一道SQL題
資料初始化:
create table t(a varchar2(10));
insert into t values('b');
insert into t values(null);
insert into t values(null);
insert into t values('a');
insert into t values('e');
insert into t values(null);
insert into t values('c');
insert into t values('d');
commit;
要求:給每一個不為null的元素編號,複雜度為O(n),結果應該如下
我當時的答案
select t3.a,decode(t3.a,null,null,num) R from
(
select t2.a,sum(t2.c) over(order by t2.r) num from
(
select rownum r,decode(t.a,null,null,1) c,a from t
) t2
) t3;
其中t2的檢視如下
王工的答案:
select a,nvl2(a,count(a) over(order by rownum),'') r from t;
王工給出的MySQL處理方式
select a,replace( if(a='','',@b=@b+1)-1,-1,'') b from t where @b:=1;
在單位5.5的環境測試,這個語句通過了,但是在5.6下,這個語句不能給出正確答案。
資料初始化:
create table t(a varchar2(10));
insert into t values('b');
insert into t values(null);
insert into t values(null);
insert into t values('a');
insert into t values('e');
insert into t values(null);
insert into t values('c');
insert into t values('d');
commit;
要求:給每一個不為null的元素編號,複雜度為O(n),結果應該如下
我當時的答案
select t3.a,decode(t3.a,null,null,num) R from
(
select t2.a,sum(t2.c) over(order by t2.r) num from
(
select rownum r,decode(t.a,null,null,1) c,a from t
) t2
) t3;
其中t2的檢視如下
王工的答案:
select a,nvl2(a,count(a) over(order by rownum),'') r from t;
王工給出的MySQL處理方式
select a,replace( if(a='','',@b=@b+1)-1,-1,'') b from t where @b:=1;
在單位5.5的環境測試,這個語句通過了,但是在5.6下,這個語句不能給出正確答案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1100924/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一道sql面試題的解答SQL面試題
- 一道sql面試題的求解方法SQL面試題
- SQL面試題一道(偏實際業務)SQL面試題
- 一道小學題的sql實現~~~SQL
- 價值 100 RMB 的一道 SQL 題SQL
- 又一道小學題的sql實現~~~SQL
- 面試三輪我倒在了一道sql題上——sql效能優化面試SQL優化
- 一道褒貶不一的 SQL 考試題 (轉)SQL
- 一道題
- 一道面試題面試題
- mysql一道面試題MySql面試題
- JavaScript的一道加法題?JavaScript
- 【理解】一道 JS 面試題JS面試題
- 一道面試題的分析面試題
- 一道騷面試題目面試題
- 解析一道JS面試題JS面試題
- 一道演算法題演算法
- 從一道筆試題題說起筆試
- 你與寫的一手好sql的大佬可能就差這一道題!SQL
- 一道面試題:去重排序面試題排序
- 記一道經典前端題前端
- 一道面試題引起的思考面試題
- 一道前端演算法題前端演算法
- 分享一道昨天的面試題面試題
- 一道Postgresql遞迴樹題SQL遞迴
- 一道題引出的Event LoopOOP
- iOS 每天一道面試題iOS面試題
- Js 一道閉包問題JS
- 一道柯里化面試題面試題
- 一道java基礎陷阱題Java
- 記Javascript一道題的理解JavaScript
- 一道java面試基礎題Java面試
- 一道hibernate面試題,求解?面試題
- 幫忙解答一道面試題面試題
- 一道遞迴陣列面試題遞迴陣列面試題
- 一道題引發的EventLoop思考OOP
- 分享一道Go面試必考的題Go面試
- bugku一道逆向題目分析