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数据库,不同的数据库产品可能产生序号列的方法不一样,不过意思应该差不多,毕竟能执行的代码才是好代码,对吧,呵呵。