Многие люди указали, что, если Вы знаете, точная длина значения с помощью CHAR обладает некоторыми преимуществами. Но при хранении штатов США, поскольку CHAR (2) является большим сегодня, когда Вы получаете сообщение от продаж, что 'Мы только что сделали нашу первую продажу Австралии', Вы находитесь в мире боли. Я всегда отправляю к переоценке, сколько времени я думаю, что поля должны будут быть вместо того, чтобы высказать 'точное' предположение для покрытия для будущих событий. VARCHAR даст мне больше гибкости в этой области.
Если они вам не нужны в 2 разных запросах, вы можете попробовать
;with query as (
Select Row_Number() over (Order By UserID ASC) as TableRowNum,
FirstName,
LastName
From Users
),
totalCount AS (
SELECT COUNT(1) Total FROM query
)
Select query.*,
Total
from query, totalCount
where TableRowNum
between 1 and 25
Order By TableRowNum ASC
Если вам нужны 2 разных запроса, лучше используйте таблицу var
DECLARE @User TABLE(
TableRowNum INT,
FirstName VARCHAR(50),
LastName VARCHAR(50)
)
;with query as (
Select Row_Number() over (Order By UserID ASC) as TableRowNum,
FirstName,
LastName
From Users
)
INSERT INTO @User
SELECT TableRowNum,
FirstName,
LastName
FROM query
SELECT *
FROM @User
where TableRowNum
between 1 and 25
Order By TableRowNum ASC
SELECT COUNT(1) FROM @User