‘壹’ sql中 怎样给一列重复的字段加序号
createtableT
(
mvarchar(10),
nint
)
insertintoTvalues('C',2)
insertintoTvalues('B',1)
insertintoTvalues('C',3)
withct
as
(
selectROW_NUMBER()over(orderbygetdate())asid,m,nfromT
)
select(selectMIN(id)fromctwherem=A.m)As序号,m,nfromcta
‘贰’ 函数编写 SQL 如何给记录加序号
有五种方法:
一、需要用临时表来实现
select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
select * from #temp
Drop Table #temp
二、不用临时表,就必须有排序列,值唯一,做参考:
select (select count(*) from yourtable where col <= A.col) row, * from yourtable A order by col
三、在原表中增加一列来实现
alter table yourtable add ID int identity
select * from yourtable
alter table yourtable drop column ID
四、 使用SQL Server 2005 独有的RANK() OVER () 语法(测试 客户编号 也应该值唯一才对)
SELECT RANK() OVER (ORDER BY 客户编号 DESC) AS 序号, 客户编号,公司名称 FROM 客户
五、
SELECT 序号= COUNT(*), a.客户编号, b.公司名称
FROM 客户 AS a, 客户AS b WHERE a.客户编号>= b.客户编号
GROUP BY a.客户编号, a.公司名称
ORDER BY 序号
‘叁’ sql语句里如何实现给查询记录添加自然序号
通过rownum实现即可。
sql:select rownum , * from tablename where 条件语句。
解释:rownum是隐藏的,查询结果默认从1开始编号,所以肯定会是自然编号的,有多少条,编号就到多少。
‘肆’ 问一个sql查询,如何给查询结果加上序号
SQL Server 下
1、SELECTROW_NUMBER()OVER(ORDERBYID)ROWNU,A1FROMTA1
解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。
SQL Server 中的ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。
在Oracle里,本就有rownum。可直接用:
1、SELECTrownum,A1FROMTA1
其它的数据库可能有别的方案,不一而论。
‘伍’ sql 分组编序号
题主你已经把SQL文写出来了,既然谁时间早排前面,那你把desc去掉就行了。
SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYSUBSTRING(CONVERT(varchar(100),Time,20),0,11)ORDERBYTime)ASxh,*FROMdbo.表)T
我用的oracle数据库,sql文如下:
SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYto_char(t.time,'yyyy-mm-dd')ORDERBYTime)ASxh,t.*FROMtestt)
‘陆’ 怎么用sql对搜索结果排序并添加序号
1、首先建一张测试表coal_blead,里面有多个字段。
‘柒’ 问一个sql查询,如何给查询结果加上序号
SQL Server 下
1、SELECTROW_NUMBER()OVER(ORDERBYID)ROWNU,A1FROMTA1
解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。
SQL Server 中的ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。
在Oracle里,本就有rownum。可直接用:
1、SELECTrownum,A1FROMTA1
其它的数据库可能有别的方案,不一而论。
‘捌’ 问题是通过SQL语句,给表添加序号
select concat(concat(t2.nm,'.'),t1.mn)序号,t1.公司ID, from
(select
row_number() over(partition by 公司ID order by 员工名) mn,
公司ID from table) t1
,
(select nn+nn/10 nm,公司ID from(
select 公司ID,rownum nn from
(select
公司ID from table
group by 公司ID
order by 公司ID)
)) t2
where t1.公司ID= t2.公司ID
-------------------------------------------------------------------------
Oracle下测试通过,如果你不是Oracle,请忽略
-------------------------------------------------------------------------
思想,t1表得到的是1 A
2 A
1 B
t2表得到的是1.1 A
2.2 B
把他们第一个字段拼起来。
ps:sql写的我自己都觉得烦。。。。。。。。。
‘玖’ 利用"SQL"语句自动生成序号的方式
1.select row_number() over (order by name) as rowid, sysobjects.[name] from sysobjects
2.select id=IDENTITY(int,1,1), sysobjects.[name] as name into dbo.Test_Table from sysobjects
‘拾’ sql 查询语句自动增加序号
.使用临时表实现
SQL的IDENTITY函数可以提供自增的序号,但只能用在带有INTO table子句的SELECT语句中,所以如果可以使用临时表的情况下可以使用这种实现方法。
eg:
SELECT IDENTITY(INT,1,1) as seq,field1,field2,...,fieldn INTO tmpTableName FROM srcTableName;
SELECT * FROM tmpTableName;
DROP TABLE tmpTableName;