2010-08-27 8 views
0
      (row number not stored in db) 

------------------------ 
|  |  A |  | (1) 
------------------------ 
|  |  B |  | (2) 
------------------------ 
|  |  C |  | (3) 
------------------------ -----Page 1 
|  |  D |  | (4) 
------------------------ 
|  |  E |  | (5) 
------------------------ 
|  |  F |  | (6) 
------------------------ -----Page 2 
|  |  F |  | (7) 
------------------------ 
|  |  F |  | (8) 
------------------------ 
|  |  G |  | (9) -----Page 3 

dire une recherche pour "F" retourneraient 6.Comment retourner le "numéro de ligne" de la première occurrence, SQL?

Merci.

essayer de faire la part de firstr de ceci: How do I query a SQL database to return the first "page" containing the specified data?

trouvé ces:
sequential row numbers from query

sqlite Retrieve Rownumber in sqlite

+0

Plus de contexte, s'il vous plaît? –

+0

@OMG Poneys: J'essaie de faire la première partie de ceci: http: //stackoverflow.com/questions/3579586/how-do-i-query-a-sql-database-to-return-the-first- page-contenant-le-spécifié –

Répondre

1
SELECT COUNT(*) 
FROM tbl 
WHERE letter < 'F' 

(vous obtiendrez le nombre moins un, de sorte que vous auriez pour l'incrémenter par un après)

+0

cela fonctionnera-t-il pour tous les types de données? –

+2

C'est le cas. Mais sachez que les valeurs 'NULL' ne seront pas incluses dans le compte. – dan04

0

essayez ceci, mais je ne considère pas la performance

--create table 
create table t(letter char(1)) 
go 

--insert values 
BEGIN TRAN 
INSERT INTO t VALUES ('A') 
INSERT INTO t VALUES ('B') 
INSERT INTO t VALUES ('C') 
INSERT INTO t VALUES ('D') 
INSERT INTO t VALUES ('E') 
INSERT INTO t VALUES ('F') 
INSERT INTO t VALUES ('F') 
INSERT INTO t VALUES ('F') 
INSERT INTO t VALUES ('G') 
COMMIT TRAN 
GO 

--and then try the select what you want 
DECLARE @temp table(num int identity(1,1), letter char(1)) 

--use a temp table variable to store the data with row number 
insert into @temp 
SELECT * FROM t 

--select the value 
SELECT * FROM @temp WHERE letter = 'F' 
GO 

--drop the table finally 
drop table t 
GO 
Questions connexes