『壹』 sql 分數欄位分段統計
//嘗試下面的sql--目測可以的
selectuid,score,t2.flagfrom[dbo].[table1]ast1
leftjoin[dbo].[table2]ast2
ont1.score>=t2.range_maxandt1.score<=t2.range_min
『貳』 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
『叄』 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可以直接用!~
『肆』 SQL 查詢不連續的號碼,按號碼段分段顯示,並統計分段數量。
declare@AAtable(yearsint,numberint)
insertinto@AAvalues(2014,45201521)
insertinto@AAvalues(2014,45201522)
insertinto@AAvalues(2014,45201523)
insertinto@AAvalues(2014,45201524)
insertinto@AAvalues(2014,45201525)
insertinto@AAvalues(2014,45201526)
insertinto@AAvalues(2014,45201527)
insertinto@AAvalues(2014,45201528)
insertinto@AAvalues(2014,45201532)
insertinto@AAvalues(2014,45201535)
insertinto@AAvalues(2014,45201536)
insertinto@AAvalues(2013,45070121)
insertinto@AAvalues(2013,45070122)
insertinto@AAvalues(2011,45010022)
insertinto@AAvalues(2011,45010023)
insertinto@AAvalues(2012,48038811)
insertinto@AAvalues(2012,48038815)
select年份,casewhenstart_num!=end_numthenconvert(varchar(20),start_num)+'-'+convert(varchar(20),end_num)elseconvert(varchar(20),start_num)endas票段號,份數from(
selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
from
(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
from@AA)m
groupbygrp,years)t
orderby年份,票段號asc
『伍』 sql 分時間段顯示數據
select * from Fine where DatePart(hh,datef) BETWEEN 0 AND 3
只要將 0 與 3 (BETWEEN 0 AND 3 這是0點到上午3點)改成你想要的時間的小時部分就可以了
如果想要分鍾部分可將 hh 改成 ss 就可了(其他的相同)
sql中可以有date類型的????????是datetime的吧!你想按小時分,在數據里沒有時間部分怎麼分,datetime類型的在插入數據時會自動跟上時間.
『陸』 SQl語句查出來的字元串怎麼分段
select
decode(f1,'1','1,你好','1,2','1、你好;2、我很好;'
from al;
試試DECODE函數