當前位置:首頁 » 編程語言 » sql的查詢語句取多個區間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql的查詢語句取多個區間

發布時間: 2022-04-21 14:28:06

『壹』 sql語句怎樣查詢一個范圍

SQL方法完成數值區間查詢
要求:根據獎金等級表的數值區間,返回獎金對應的等級。

1、鏈接外部數據:數據--現有鏈接--瀏覽更多,在路徑中選擇數據Excel文件和目標工作表,建立數據鏈接。

詳細步驟參考前面所發的SQL相關文章。

2、編寫sql語句。
2.1、使用switch函數,SQL語句為:
select 姓名,獎金,switch(獎金<200,"D級",獎金<300,"C級",獎金<500,"B級",獎金>=500,"A級") as 獎金等級 from [獎金$a1:b11]

switch函數直接判斷數值,若數值小於200,返回D級;數值小於300返回C級;數值小於500,返回B級;餘下的數值條件要變化為>=500返回A級而不是<=700。

2.2、使用iif函數,SQL語句為:
select 姓名,獎金,iif(獎金<200,"D級",iif(獎金<300,"C級",iif(獎金<500,"B級","A級"))) as 獎金等級 from [獎金$a1:b11]

其基本思路和switch函數相同,類似工作表函數if的嵌套。

2.3、使用betweent...and,SQ語句為:
select a.姓名,a.獎金,b.等級 from [獎金$a1:b11] a,[獎金等級$] b where a.獎金 between b.最小值 and b.最大值

以戴蘇明同學為例子,在SQL代碼運行的時候,將戴蘇明同學的獎金一一和獎金等級表中的數值進行對比,符合區間的就返回區間等級。其他同學亦然。

但是,當獎金超出最大值700的時候就會取不到該條數據。

如劉平的獎金701並不在betweent...and的區間內,返回的結果中沒有劉平的數據。

2.4、使用Where比較大小,sql語句為:
select a.姓名,a.獎金,b.等級 from [獎金$a1:b11] a,[獎金等級$] b where a.獎金 >=b.最小值 and a.獎金<=b.最大值

此方法原理和betweent...and一樣,當獎金超過最大值700時,數據將有遺漏(劉平)。

當獎金的最大值為700的時候,以上四種方法都得出同樣的結果。

當獎金最大值超過700的時候,3、4兩個方法將遺漏獎金大於700的數據。

因此,可在設計獎金等級表的時候,可以將最大值700改為一個比較大的數值,使獎金再高也不會超過,則四種方位皆可。

如更改獎金等級表的最大值700為70000,這么大的一個范圍,則四種方法都適用。

『貳』 sql查詢不同區間的數量

select
count(case when time>=1 and time <=2 then muid end),
count(case when time>=2.1 and time <=3 then muid end),
count(case when time>=3.1 and time <=4 then muid end)
from table

『叄』 SQL語句選取某個區間的記錄怎麼編寫

例如:寫一個SQL語句,取出表S中第21~30記錄(SQL server,以自動增長的ID作為主鍵,ID可能不連續)

方法一:

Select TOp10 * from S

Where ID>(Select MAX(ID) from (Select Top20 ID from S ) as S)

方法二:

select Top10 * from S where ID NOT IN(select Top20 ID from S)

(3)sql的查詢語句取多個區間擴展閱讀

SQL SELECT 語句用於從表中選取數據。

結果被存儲在一個結果表中(稱為結果集)。

SQL SELECT 語法

SELECT 列名稱 FROM 表名稱

以及:

SELECT * FROM 表名稱

注釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。

SQL SELECT 實例:

如需獲取名為 "LastName" 和 "FirstName" 的列的內容(從名為 "Persons" 的資料庫表),請使用類似這樣的 SELECT 語句:

SELECT LastName,FirstName FROM Persons

『肆』 sql怎麼取區間

如果是oracle的話,可以用for in語句
for v_num in 1..10 loop
--execute some sql
end loop;

『伍』 sql查詢:怎麼查詢符合2個范圍

sql="Select cpkd,cphd,title from news where (cpkd between '" & kdi & "' and '" & kda &"') AND (cphd between '" & hdi &"' and '" & hda & "') order by id desc "
注意sql是一個字元串變數(等號右邊要成為一個字元串),要用長字元串=短字元串(用""圍住)& 變數 & 短字元串(用""圍住)。&是連接符,將字元串和變數連接成新的字元串。

『陸』 sql查詢價格區間

1、單行子查詢出現在WHERE子句中,如下所示。

5、ANY操作符不能單獨使用,必須和>、<等比較操作符一起使用。>ANY表示大於列表中任何一個數據即為TRUE;<ANY表示小於列表中的任何數據即為TRUE。具體實現如下圖。

『柒』 SQL 如何查詢日期在一定范圍內的數據

select * from 表 where 日期欄位>='開始日期' and 日期欄位<='截止日期' and convert(char(8),日期欄位,108)>='開始時間' and convert(char(8),日期欄位,108)<='截止時間'。

SELECT * FROM 表明 WHERE 日期欄位名 BETWEEN '20130101' AND '20130130'。

例如:

select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='8:00:00' and convert(char(8),dDate,108)<='9:00:00'.

select * from table1where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)

(7)sql的查詢語句取多個區間擴展閱讀:

SQL查詢日期:

今天的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())=0

昨天的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())=1

7天內的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())<=7

30天內的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())<=30

本月的所有數據:select * from 表名 where DateDiff(mm,datetime類型欄位,getdate())=0

本年的所有數據:select * from 表名 where DateDiff(yy,datetime類型欄位,getdate())=0

參考資料:SQL_網路

『捌』 sql查詢語句

SQL查詢就是用的select相關的語句,根據不用的需求,設置關鍵屬性值和查詢區間即可完成一條查詢語句

『玖』 SQL 查詢單列不同區間值

SELECT convert(varchar(10),convert(int,Score))+"~"+convert(varchar(10),convert(int, CASE WHEN Score=ceiling(Score) THEN Score+1 ELSE ceiling(Score) END)), count(*) from TTT
GROUP BY convert(varchar(10),convert(int,Score))+"~"+convert(varchar(10),convert(int, CASE WHEN Score=ceiling(Score) THEN Score+1 ELSE ceiling(Score) END))
ORDER BY 1

注意:0~1返回0次的結果出不來。
如一定要求0~1的也出結果,你還得把需求說得更清楚一下。比如說將上述ID為3的數據改為3.2,那麼4~5的也將為0而查不到,還要顯示4~5為0嗎?5~6、6~7呢?簡而言之,要求高的話,需要說明Score的最小值和最大值。

『拾』 Oracle SQL語句查詢值區間范圍數據

where1=1and
IN_AVG_VALUEBETWEEN'30'AND'50'
or
IN_MAX_VALUEBETWEEN'30'AND'50'
or
IN_MIN_VALUEBETWEEN'30'AND'50'