A. sql 如何對序列號排序
建議你在做序列號的時候,前面添加上0標識符
用01.01.01這樣,才有利於排序
B. 資料庫 SQL 如何自動生成000001,000002,… 序號
把你所生成自動編號的那一列 設置成自動增長 種子設為1
如 id int identity(1000,1) 那麼這列就不用輸入數據 會自動按1000開始 每次遞增1
C. 如何用SQL自動生成序號和分序號
需要用row_number來給分組添加序號。
1、創建測試表,插入數據:
createtabletest(sidint,snamevarchar(20),sclassvarchar(20),scoreint);insertintotestvalues(1,'張三','一年一班',100)insertintotestvalues(2,'李四','一年一班',78)insertintotestvalues(3,'王五','一年一班',67)insertintotestvalues(4,'趙六','一年一班',87)insertintotestvalues(5,'badkano','一年二班',98)insertintotestvalues(6,'網路知道團長','一年二班',99)insertintotestvalues(7,'小小動','一年二班',99)insertintotestvalues(8,'劉備','一年三班',56)insertintotestvalues(9,'張飛','一年三班',67)insertintotestvalues(10,'關羽','一年三班',76)2、要求按照班級總分給出班級排名(即序號),執行語句:
selectrow_number()over(orderbyscoredesc)排名,sclass班級,score總分from(selectsclass,SUM(score)scorefromtestgroupbysclass)t3、查詢結果:
D. 該sql如何查啊查詢學過編號為"01"但是沒有學過編號為"02"的課程的同學的信息
表結構?
假設
學生表 學生ID 學生名
選課表 課程ID 學生ID
select t1.*
from 學生表 t1
where t1.學生ID not in (select 學生ID from 選課表 where 課程ID ='02')
and t1.學生ID in (select 學生ID from 選課表 where 課程ID ='01')
E. SQL資料庫主鍵ID以01,02 ,03的方式往下排序應該怎麼弄
你到底是問SQL還是問歌啊
sql用序列和觸發器可以實現自動編號
給個例子參照:
CREATE TABLE TABLE_A
(
USERID NUMBER,
USERNAME VARCHAR2( 10),
USERPASSWORD VARCHAR2(10 )
);
CREATE SEQUENCE SE_TABLE_A
minvalue 1
maxvalue 9999
start with 1
increment by 1
nocache ;
create trigger TRG_TABLE_A
before insert
on TABLE_A for each row
begin
select SE_TABLE_A.NEXTVAL into :NEW.USERID from al;
end;
insert into TABLE_A(USERNAME,USERPASSWORD) values( 'USER1','PWD1' );
insert into TABLE_A(USERNAME,USERPASSWORD) values( 'USER2','PWD2' );
insert into TABLE_A(USERNAME,USERPASSWORD) values( 'USER3','PWD3' );
insert into TABLE_A(USERNAME,USERPASSWORD) values( 'USER4','PWD4' );
F. sql 按照日期排序,同一日期自動從1開始編號。
oracle資料庫:
排序使用分析函數: row_number()OVER()
SELECT
row_number()OVER(partitionBYt.trandateORDERBYt.tranamt)"NO",
t.trandate,
nvl(t.tranamt,'小計'),
DECODE(COUNT(*),'1','',COUNT(*))"計數",
decode(SUM(to_number(t.tranamt)),to_number(t.tranamt),'',SUM(to_number(t.tranamt)))"小計"
FROMtesttabletGROUPBYrollup(trandate,tranamt);
G. SQL中 哪種數字類型可以顯示01而不是直接變成1,試過String「01」轉成int 還是直接變成1
只有字元串類型才可以保存前面的0,如果你用int等表示數值的類型,不會保存前面的0.如果用代碼控制的話,很有可能又變回字元串了。所以,建議你直接用字元串存儲。就是archar或者nvarchar。
H. 查詢系號為「01」的總人數用sql語句怎麼寫
select count(1) as 總人數 from table where 系號='01'
祝好運,望採納
I. SQL 排序問題
我用的是Oracle資料庫,
先建表:
create table test25
(
indexH int,
SalesOrderid int,
OrderDate date
)
然後插入測試數據:
insert all
into test25 values(1,45528,to_date('2006-03-01 02:12:14','yyyy-mm-dd hh24:mi:ss'))
into test25 values(2,45530,to_date('2006-03-01 01:20:57','yyyy-mm-dd hh24:mi:ss'))
into test25 values(3,45559,to_date('2006-03-01 01:58:19','yyyy-mm-dd hh24:mi:ss'))
into test25 values(4,45578,to_date('2006-03-01 01:31:20','yyyy-mm-dd hh24:mi:ss'))
into test25 values(5,45581,to_date('2006-03-01 02:28:04','yyyy-mm-dd hh24:mi:ss'))
select * from al
注意,我這里沒有把你那個毫秒計算進去,只精確到秒,需要的話,告訴我,我會補充下。
然後查詢,也就是你需要的sql語句:
select indexh ,SALESORDERID,to_char(ORDERDATE,'yyyy-mm-dd hh24:mi:ss') as ORDERDATE,row_number() over (order by ORDERDATE) as 按訂貨時間順序號 from test25 order by indexh
結果是:
INDEXH SALESORDERID ORDERDATE 按訂貨時間順序號
1 45528 2006-03-01 02:12:14 4
2 45530 2006-03-01 01:20:57 1
3 45559 2006-03-01 01:58:19 3
4 45578 2006-03-01 01:31:20 2
5 45581 2006-03-01 02:28:04 5
我用的是Oracle資料庫,不同的資料庫產品可能產生序號列的方法不一樣,不過意思應該差不多,畢竟能執行的代碼才是好代碼,對吧,呵呵。