Какой самый простой способ найти SQL-запрос возвращает результат или нет? - PullRequest
2 голосов
/ 09 апреля 2010

Рассмотрим следующий запрос к серверу sql,

 DECLARE @Table TABLE(
        Wages FLOAT
)

INSERT INTO @Table SELECT 20000 
INSERT INTO @Table SELECT 15000 
INSERT INTO @Table SELECT 10000
INSERT INTO @Table SELECT 45000
INSERT INTO @Table SELECT 50000

SELECT  *
FROM    (
            SELECT  *,
                    ROW_NUMBER() OVER(ORDER BY Wages DESC) RowID
            FROM    @Table 
        ) sub
WHERE   RowID = 3

Результатом запроса будет 20000 ..... Отлично, на данный момент мне нужно найти результат этого запроса,

SELECT  *
FROM    (
            SELECT  *,
                    ROW_NUMBER() OVER(ORDER BY Wages DESC) RowID
            FROM    @Table 
        ) sub
WHERE   RowID = 6

Это не даст никакого результата, потому что в таблице есть только 5 строк ..... так что теперь мой вопрос

Какой самый простой способ найти SQL-запрос возвращает результат или нет?

Ответы [ 2 ]

2 голосов
/ 09 апреля 2010

Использование @@ROWCOUNT > 0

Итак, в качестве простого примера,

SELECT  *
FROM    (
            SELECT  *,
                    ROW_NUMBER() OVER(ORDER BY Wages DESC) RowID
            FROM    @Table 
        ) sub
WHERE   RowID = 6

IF @@ROWCOUNT > 0 BEGIN
    RETURN 1
END
ELSE BEGIN
    RETURN 0
END

Для получения дополнительной информации, вот ссылка на документацию.

0 голосов
/ 09 апреля 2010

Как это:

SELECT @@rowcount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...