나는 pkey와 함께 테이블에 숫자 필드 (숫자)를 가지고 있습니다.쿼리 출력에 행 번호가 없습니다.
select * from mytable order by num
이제 어떻게 pkey가있는 특정 행의 쿼리 출력에서 행을 가져올 수 있습니까? 난 당신이 모든 행의 수는 바로, 반환 싶어 질문을 이해
나는 SQL 2000
나는 pkey와 함께 테이블에 숫자 필드 (숫자)를 가지고 있습니다.쿼리 출력에 행 번호가 없습니다.
select * from mytable order by num
이제 어떻게 pkey가있는 특정 행의 쿼리 출력에서 행을 가져올 수 있습니까? 난 당신이 모든 행의 수는 바로, 반환 싶어 질문을 이해
나는 SQL 2000
반환되는 각 레코드의 행 번호를 원하는 것처럼 들립니다.
SQL 2000에서이 작업을 수행 할 수 있습니다 : NUM을지지
SELECT (SELECT COUNT(*) FROM MyTable t2 WHERE t2.num <= t.num) AS RowNo, *
FROM MyTable t
ORDER BY num
가 유일하다. 그렇지 않으면 PK 필드를 사용하고 주문해야합니다.
또는 임시 테이블 (또는 테이블 VAR) 사용 : SQL 2005 년
CREATE TABLE #Results
(
RowNo INTEGER IDENTITY(1,1),
MyField VARCHAR(10)
)
INSERT #Results
SELECT MyField
FROM MyTable
ORDER BY uum
SELECT * FROM #Results
DROP TABLE #Results
을하는 ROW_NUMBER()가있다 당신이 인생을 더 쉽게 만드는 사용할 수있는 기능. 에이다가 지적 하듯이
을 사용하고 있습니다? 사용하는 경우 @@rowcount
,이 작업은 SQL Server 2005에서 훨씬 더 쉽게되었다 ....
SELECT whatever, RowNumber from (
SELECT pk
, whatever
, ROW_NUMBER() OVER(ORDER BY num) AS 'RowNumber'
FROM mytable
)
WHERE pk = 23;
SQL 2000에서는 ROW_NUMBER() 함수를 사용할 수 없습니다. – Sharique
첫 번째 솔은 1 필드 만있는 경우 작동합니다. 둘 이상의 필드는 그렇지 않습니다. ADO.NET의 임시 테이블을 어떻게 사용할 수 있습니까? – Sharique
개인적으로 저장 프로 시저에 쿼리를 래핑 한 다음 호출하면됩니다. 있는 그대로 쿼리를 보낼 수 있습니다 (CommandType = CommandType.Text). – AdaTheDev