參考語句:
select code,
sum(case when play_id=1 then cnt else 0 end ) play_id01,
sum(case when play_id=1 then cnt else 0 end ) play_id02,
sum(case when play_id=1 then cnt else 0 end ) play_id03
form 表
group by code
2. 一個比較復雜的sql問題,5個表聯表查詢,幫幫小弟
可以的,不過樓主你也給點分吧! 這么多,都不給分不厚道!
selectF.user_id,U.username
(
SELECTCOUNT(1)ASPLCOUNTFROMdiaryD
LEFTJOINdiscussPONP.key_id=D.ID
whered.user_id=F.user_id
)ASPLCOUNT,
(
SELECTCOUNT(1)ASDZCOUNTFROMdiaryD
LEFTJOINpraiseZONZ.praised_id=D.ID
whered.user_id=F.user_id
)ASplCount,
fromfriend_listF
LEFTJOINuser_idAONF.FRIEND_ID=A.user_id
LEFTJOINusernameUONU.user_id=F.user_id
WHEREA.user_id='XXXX'
3. sql語句 5張表關聯
select 表2.標題,表3.標題,表4.標題,表5.標題 from 表1 inner join 表2 on 表1.內容id=表2.id
inner join 表3 on 表1.內容id=表3.id inner join 表4 on 表1.內容id=表4.id inner join 表1.內容id=表5.id where 條件
4. sql 一列數據分段統計怎麼寫
count(case when 分數欄位 between 90 and 99 then 1 end) as[90-99分],count(case when 分拍畝散數欄位 between 80 and 89 then 1 end) as[80-89分],count(case when 分數欄位 between 70 and 79 then 1 end) as[70-79分],count(case when 分數欄位<70 then 1 end) as[70分耐戚以下]from 學生分數表襲氏
5. sql 分段查詢語句怎麼寫
什麼庫? sqlserver access oracle?
access的話 還是在表裡多設置一個欄位讓他自動增減吧!~
sqlserver的話
select identity(int,1,1) rownum,name into #temp from 表
select * from #temp where rownum>10 and rownum<=20
oracle最簡單 有rownum可以直接用!~
6. 如何寫sql語句5個表jion鏈接
其毀培如實這是oracle的寫法,SQL是沒有這種寫法的,一般來說,幾乎不纖啟用right join,都是中山採用left join,上述語句等價於
select * from a
left join b on a.id=b.id
left join c on b.city=c.city
join d on c.city_code=d.city_code
join e on d.area_id=e.area_id
7. SQL查詢,將某數據分段
分隔符『-』的前後字元串字數是不是固定的,如果是固定的使用一樓的答案就行了,如果不是固定的可以寫一個分隔函數,在查詢的時候調用,
--按指定符號分割字元串,返回分割後指定索引的第幾個元素
CREATEfunctionGet_StrArrayStrOfIndex
(
@strnvarchar(4000),--要分割的字元串
@splitvarchar(10),--分隔符號
@indexint--取第幾個元素
)
returnsnvarchar(2048)
as
begin
declare@locationint
declare@startint
declare@nextint
declare@seedintset@str=ltrim(rtrim(@str))
set@start=1
set@next=1
set@seed=len(@split)set@location=charindex(@split,@str)
while@location<>0and@index>@next
begin
set@start=@location+@seed
set@location=charindex(@split,@str,@start)
set@next=@next+1
end
if@location=0select@location=len(@str)+1
--這兒存在兩種情況:1、字元串不存在分隔符號2、字元串中存在分隔符號,跳出while循環後,@location為0,那默認為字元串後邊有一個分隔符號。returnsubstring(@str,@start,@location-@start)
end
--查詢語句
selectdbo.Get_StrArrayStrOfIndex(A,'-',1)asA1,dbo.Get_StrArrayStrOfIndex(A,'-',2)asA2,dbo.Get_StrArrayStrOfIndex(A,'-',3)asA3,Bfromtablename