• <nav id="kggui"></nav>
  • <optgroup id="kggui"></optgroup>
  • <menu id="kggui"></menu><xmp id="kggui"><nav id="kggui"></nav>
    <menu id="kggui"><menu id="kggui"></menu></menu>
    <nav id="kggui"></nav>

    sql復雜語句

    一個復雜的sql 語句

    汗一個,我用一個sql實現了,在Sql2005下測試通過:

    DECLARE @key NVARCHAR(MAX);

    SET @key = '中';--要搜索的關鍵詞

    SELECT CASE

    WHEN t IS NULL THEN N'(' + @key + N')' + SUBSTRING(k, LEN(@key) + 1, LEN(k))

    ELSE N'(' + t + N')' + SUBSTRING(k, LEN(t) + 1, LEN(k))

    END

    FROM (

    SELECT k,

    (

    SELECT TOP 1 k

    FROM 關鍵詞表 a1

    WHERE a2.k LIKE a1.k + '%'

    ) t

    FROM 內容表 a2

    WHERE k LIKE @key + '%'

    ) a

    如果用一條sql實現,很困難,建議用存儲過程實現

    或用程序去實現

    復雜sql語句

    語句(假設你的系統取日期月份的函數MONTH):

    SELECT MONTH(注冊日期),COUNT(*) FROM 表 GROUP BY 1

    產生的結果是:

    1 23

    2 10

    3 45

    如果你計算每個月度(200801、200802、……)的注冊人數,應該使用下面的語句(假設你的系統取日期年度的函數是YEAR):

    SELECT YEAR(注冊日期)+" "+MONTH(注冊日期),COUNT(*) FROM 表 GROUP BY 1

    假如你的系統連接字符串不是使用+,那換為相應的字符或者函數,比如INFORMIX是使用YEAR(注冊日期)||MONTH(注冊日期),比如MYSQL是使用CONCATE函數

    補充:

    SELECT語句的教材專門有聚合函數那一章,你仔細看看吧。

    在SELECT語句里面,GROUP子句配合SUM,AVG,MAX,MIN等函數完成分類統計功能,執行我的兩個語句,查看輸出的結果,你就知道GROUP的含義,下面取一個最簡單的例子:

    “SELECT COUNT(*) FROM 表”這個SQL語句返回的結果只有一個,就是數據庫中的總記錄條數,如果我們想統計不同用戶名的分組進行匯總的記錄條數,就應該在SELECT后增加一個字段,同事GROUP BY這個字段,完整的語句是:

    SELECT 用戶名,COUNT(*) FROM 表 GROUP BY 用戶名

    這個語句也可以這樣寫:

    SELECT 用戶名,COUNT(*) FROM 表 GROUP BY 1

    這時候GROUP BY后面的整數表示按照相應序號的SELECT列分組,這里的1表示第一個的選擇結果“用戶名”。如果我們想按用戶分組查記錄數,但是只現實有重復的記錄,那么用GROUP BY的一個HAVING修飾,完整語句如下:

    SELECT 用戶名,COUNT(*) FROM 表 GROUP BY 用戶名 HAVING COUNT(*)>1

    復雜的sql語句

    描述有點不具體,這個是把結果以列的形式展示:

    select id,name,case when time1>time2 then '錯誤一' end as type1,

    case when time1>time3 then '錯誤二' end as type2,

    case when time4>time5 then '錯誤三' end as type3

    from test

    where name = '小明'

    ---結果集放在一起

    select id,name,case when time1>time2 then '錯誤一' end +

    case when time1>time3 then '錯誤二' end +

    case when time4>time5 then '錯誤三' end as Result

    from test

    where name = '小明'

    復雜sql語句查詢

    select id,name,isnull((select SUM(金額) from B表 where id=A表.id and bno=20),0) 正常消費,isnull((select SUM(金額) from B表 where id=A表.id and bno=30),0) 充值,(select top 1 余額 from B表 where id=A表.id order by 時間 desc) 余額,(select MAX(時間) from B表 where id=A表.id) 時間 from A表 這樣看一下行不行。

    一段很復雜很復雜的SQL語句

    Select * From ( Select * From ( Select Number ,ChineseName ,*mentCode ,DepartmentName ,ShiftId ,ShiftName ,Degree ,AskForLeaveType ,WorkOnDate ,OnDutyType ,StartTime ,EndTime ,AOnDuty ,AOffDuty ,Allday ,*al ,'Error'= Case When Degree=1 AND StartTime0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=1 AND StartTime>=AOffDuty AND ShiftId>0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=1 AND StartTime>=WorkOnDate+' '+'12:30' AND EndTime 0 AND ShiftId>0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=2 AND StartTime0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=2 AND StartTime>=AOffDuty AND EndTime0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=2 AND StartTime>=BOffDuty AND ShiftId>0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=3 AND StartTime0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=3 AND StartTime>=AOffDuty AND EndTime0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=3 AND StartTime>=BOffDuty AND EndTime0 AND Left(AskForLeaveType,1)='0' Then 0 When Degree=3 AND StartTime>=COffDuty AND ShiftId>0 AND Left(AskForLeaveType,1)='0' Then 0 When ShiftId=0 AND Left(AskForLeaveType,1)='0' Then 0 When ShiftId>0 AND Left(AskForLeaveType,1)'0' AND Left(OnDutyType,1)=0 Then 0 When ShiftId>0 AND Left(AskForLeaveType,1)'0' AND Left(OnDutyType,1)=2 AND AskForLeaveType='出差假' Then 0 When ShiftId>0 AND Left(AskForLeaveType,1)'0' AND Left(OnDutyType,1)=2 AND AskForLeaveType='產假' Then 0 When ShiftId=0 AND Left(AskForLeaveType,1)'0' AND Convert(varchar(10),StartTime,108)='00:00:00' AND Convert(varchar(10),EndTime,108)='00:30:00' Then 0 Else 1 End From ( Select Number ,ChineseName ,DepartmentName ,*mentCode ,*d ,*ame ,Degree ,AskForLeaveType ,Convert(varchar(10),WorkOnDate,120) as 'WorkOnDate' ,StartTime ,EndTime ,AllDay ,SumTotal ,Case When Right(Convert(Varchar(10),WorkOnDate,120),5) IN (select Right(Convert(Varchar(10),HolidayDate,120),5) From AttendanceHoliday) THEN '2 - 公眾假上班' ELSE '0 - 平時上班' END AS 'OnDutyType' ,Case When Left(FristBrushDate,1)='1' AND Convert(varchar(10),AOffDuty,120)>Convert(varchar(10),AOnDuty,120) Then CAST(Convert(Varchar(11),Dateadd(dd,-1,OnDutyDate),120)+Convert(Varchar(5),AOnDuty,108) AS DateTime) ELSE CAST(Convert(Varchar(11),OnDutyDate,120)+Convert(Varchar(5),AOnDuty,108) AS DateTime) End AS 'AOnDuty' ,Case When Left(FristBrushDate,1)='0' AND Convert(varchar(10),AOnDuty,120)1 Group by Number,ChineseName,*mentCode,DepartmentName,*d,*ame,Degree,AskForLeaveType,AllDay,WorkOnDate,StartTime,EndTime,Sumtotal having Count(1)>1 ) tb3 ) tb4對你的代碼格式化后發現,還缺少一些語句,你是否粘貼完整了?讀完SQL語句后發現,其實是一個考勤核算的查詢語句,是兩個大的SQL查詢Union ALL的結果。

    一句復雜的SQL語句高手看看

    select MCDJNBXH,QYMC,ZWZH,PYZH,QYLX,MCLB,DJJG,HZTZSWH,HZJG,MCBLQZ,HZRQ,'SL' as BM from SL_QYMCHZK where 1=1 AND MCLB in ('6','7','9','10','15') AND QYMC like "5566"

    //這是第一句 連執行一下看看它的結果集 如果我們命名如果集為數組$r_1

    select row_.*,rownum rownum_ from $r_1 row_ where rownum<=122

    //這是第二句 分析$r_1之后再看看這句的結果集 定義為$r_2

    Select * from $r_2 where rownum>101

    //最后出最終的結果集 從sql語句看$r_1 $r_2是表名

    復雜的sql語句

    不是很復雜,只有一個子查詢,最后那個from里邊有很多內連接和外連接,主要是跟業務相關的,表多點不復雜,不知道你的業務邏輯,說不清楚主要函數,case when,就是根據不同的case選擇一個結果decode,跟case when差不多,DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )nvl,判斷是否為空的,NVL( string1, replace_with) ,如果為空就用replace_with代替group by rollup,不太容易說清楚,給你個連接自己看吧做個小例子也容易理解http://**ghostgant/article/details/5699731。

    復雜的sql語句怎么寫

    1、select * from 表 where year(列名) = year(getdate())-1 and month(列名)= 3 --這個比較容易理解,就不解釋了

    2、select datepart(wk,dateadd(year,-1,getdate())) -- 去年的今天是去年的第幾周

    select datepart(wk,dateadd(day,1-day(dateadd(year,-1,getdate())),dateadd(year,-1,getdate()))) -- 去年的本月的1號是去年的第幾周

    select datepart(wk,dateadd(year,-1,getdate())) - datepart(wk,dateadd(day,1-day(dateadd(year,-1,getdate())),dateadd(year,-1,getdate()))) --上邊兩者相減就是去年的今天是去年本月的第幾周

    轉載請注明出處華閱文章網 » sql復雜語句

    短句

    主謂賓英語句子

    閱讀(355)

    主 謂 賓 的英語句子五十個 樓主好,1. I love you. (主語和賓語都可以換, He loves her, she loves him.你懂吧..)2. She likes music. (music可以換成很多別的東西,像 movie,

    短句

    問候早安的語句

    閱讀(243)

    問候早安的句子 1 . 保留再多,也是一種缺失;播撒多了,才會擁有。有舍才有得,與其有所保留,不如大方給予,澆灌萬物的同時,也澆灌了自己。早安!2 . 情若朝陽,徐徐升起,溫暖心田;誼若美酒,芳香醇厚,沁人心脾。道一聲朋友,問一句早安,只愿你的笑容永遠燦爛

    短句

    sql語句andor執行順序

    閱讀(218)

    SQL語句中 AND和OR的區別 區別1:and是與運算;or是或運算。區別2:and運算要前后兩個運算對象都為真是,and運算結果才為真;or運算是兩個運算對象中有一個為真,or運算結果就為真

    短句

    sql語句兩個表

    閱讀(241)

    請教這種SQL語句如何寫 給你一個實例: select a.str ,b.str from a,b where a.str match b.str 這個sql語句不標準,informix支持, select a.str ,b.str from a,b where STRCMP

    短句

    緊張的語句

    閱讀(238)

    描寫人緊張的句子 1、雙手不知道該放在哪里,不知道什么是時候開始,手心冒著冷汗。 2、他用一雙探索、恐懼的目光,望著政委,等待著響在他頭上的霹靂。 3、我的心里像有十五只水桶打水—忐忑不安的,久久不能清靜。 4、我以為我害怕的只有告別

    短句

    形容小的語句

    閱讀(389)

    形容人瘦弱矮小的詞語和句子 褒義:嬌小玲瓏——玲瓏:伶俐可愛.形容身材小巧、伶俐可愛的樣子.矮小精悍——悍:勇敢.形容人身材短小而精明強干小鳥依人——依:依戀.象小鳥那樣

    短句

    sql語句用戶創建

    閱讀(268)

    sql server中利用sql語句如何創建角色和用戶 示例:創建角色,用戶,權限示例在數據庫pubs中創建一個擁有表jobs的所有權限、擁有表titles的SELECT權限的角色p_test隨后創建了一個登錄a_test,然后在數據庫pubs中為登錄a_t

    短句

    寫景的優美語句

    閱讀(217)

    描寫景物的優美句子 銀白的月光灑在地上,到處都有蟋蟀的凄切的叫聲。夜的香氣彌漫在空中,織成了一個柔軟的網,把所有的景物都罩在里面。眼睛所接觸到的都是罩上這個柔軟的網

    短句

    被嫌棄的語句

    閱讀(344)

    形容嫌棄的句子 1. 不過,我可沒有iris這般長得魚沉雁落,你不會嫌棄吧?2. 若我未死,你不嫌棄,我便回來娶你,可好?3. 不敢不敢!若李兄不嫌棄,咱們結成兒女親家,如何?4. 區區百兩不成敬意,尚勿嫌棄,務必收下,以作相識的袍澤之誼。5. 這算不上禮物

    短句

    愛情的唯美語句

    閱讀(204)

    超唯美愛情句子 與你一見如故,是我今生最美麗的相遇。與你一諾相許,是我素色年華里最永恒的風景。一直想說,無論走到哪里,最想去的是你的身邊。愿我們彼此相愛,一直到時間的盡頭。我相信我們可以一起,等青絲變白發。你在,我在,就是海枯石爛。沒

    短句

    ifcase語句的用法

    閱讀(275)

    IF和CASE語句的區別 If 和case語句是VHDL里邊兩個非常重要的語句,如何用好她們來描述邏輯電路和時序電路是學會VHDL編程重要的一步。if 和 case語句有一定的相關性,也有一定的區別。相同的地方是他們可以實現幾乎一樣的功能。下面主要介

    短句

    sql創建用戶語句

    閱讀(441)

    sql server中利用sql語句如何創建角色和用戶 示例:創建角色,用戶,權限示例在數據庫pubs中創建一個擁有表jobs的所有權限、擁有表titles的SELECT權限的角色p_test隨后創建了

    短句

    寫陽光的語句

    閱讀(200)

    描寫陽光的句子 一、初夏的陽光從密密層層的枝葉間透射下來,地上印滿銅錢大小的粼粼光斑。二、天空一碧如洗,燦爛的陽光正從密密的松針的縫隙間射下來,形成一束束粗粗細細的

    短句

    祝孩子的語句

    閱讀(200)

    寫給寶寶的唯美的句子 每一個小孩的誕生,在媽媽心中都會感覺如獲至寶,不自覺的母愛泛濫。會喜悅著孩子的成長,憧憬著孩子的未來。雖然恨不得一直陪在孩子的身邊,但是必須要放手讓孩子自由的飛翔。媽媽對孩子的愛和期盼怎么也寫不完,愿寶寶一

    短句

    問候早安的語句

    閱讀(243)

    問候早安的句子 1 . 保留再多,也是一種缺失;播撒多了,才會擁有。有舍才有得,與其有所保留,不如大方給予,澆灌萬物的同時,也澆灌了自己。早安!2 . 情若朝陽,徐徐升起,溫暖心田;誼若美酒,芳香醇厚,沁人心脾。道一聲朋友,問一句早安,只愿你的笑容永遠燦爛

    短句

    主謂賓英語句子

    閱讀(355)

    主 謂 賓 的英語句子五十個 樓主好,1. I love you. (主語和賓語都可以換, He loves her, she loves him.你懂吧..)2. She likes music. (music可以換成很多別的東西,像 movie,

    短句

    sql語句andor執行順序

    閱讀(218)

    SQL語句中 AND和OR的區別 區別1:and是與運算;or是或運算。區別2:and運算要前后兩個運算對象都為真是,and運算結果才為真;or運算是兩個運算對象中有一個為真,or運算結果就為真

    短句

    sql語句兩個表

    閱讀(241)

    請教這種SQL語句如何寫 給你一個實例: select a.str ,b.str from a,b where a.str match b.str 這個sql語句不標準,informix支持, select a.str ,b.str from a,b where STRCMP

    短句

    形容小的語句

    閱讀(389)

    形容人瘦弱矮小的詞語和句子 褒義:嬌小玲瓏——玲瓏:伶俐可愛.形容身材小巧、伶俐可愛的樣子.矮小精悍——悍:勇敢.形容人身材短小而精明強干小鳥依人——依:依戀.象小鳥那樣

    短句

    緊張的語句

    閱讀(238)

    描寫人緊張的句子 1、雙手不知道該放在哪里,不知道什么是時候開始,手心冒著冷汗。 2、他用一雙探索、恐懼的目光,望著政委,等待著響在他頭上的霹靂。 3、我的心里像有十五只水桶打水—忐忑不安的,久久不能清靜。 4、我以為我害怕的只有告別

    短句

    主謂賓的英語句子

    閱讀(421)

    主 謂 賓 的英語句子五十個 樓主好,1. I love you. (主語和賓語都可以換, He loves her, she loves him.你懂吧..)2. She likes music. (music可以換成很多別的東西,像 movie,

    短句

    sql語句用戶創建

    閱讀(268)

    sql server中利用sql語句如何創建角色和用戶 示例:創建角色,用戶,權限示例在數據庫pubs中創建一個擁有表jobs的所有權限、擁有表titles的SELECT權限的角色p_test隨后創建了一個登錄a_test,然后在數據庫pubs中為登錄a_t

    久久热在线视频