Inquiridor
SELECT MAX

Pergunta
-
Bom dia pessoal ,
Seguinte estou fazendo um select max em um determinado campo da tabela para o select trazer o maior campos e adicionar mais 1.
Exemplo:
DECLARE @cod smallint
SET @cod = (SELECT MAX(Id_CadastroPlano) +1
FROM Cadastro_Planos
WHERE Id_Cadastro = @P_Id_Cadastro)
Este select funciona perfeito quando ja tem um registro na tabela , se a tabela não tiver nenhum registro em vez dele trazer 1 ele traz NULL , pois os campos estão todos NULL na tabela pois a mesma esta vazia.
Alguem saberia me dizer como eu zero os valores da tabela quando ela não tiver nada para que meu select max traga 1 e não NULL ?
Obrigado,
Todas as Respostas
-
-
-
Danilo,
Com o objetivo de ilustrar a resposta do Sandro, segue abaixo outras possibilidades para realizar o cálculo:
Code BlockSELECT MAX(Id_CadastroPlano) +1 As Soma
FROM Cadastro_Planos
WHERE Id_Cadastro = @P_Id_Cadastroou utilizando a função IsNull
SELECT IsNull(MAX(Id_CadastroPlano)+1),1)
FROM Cadastro_Planos
WHERE Id_Cadastro = @P_Id_Cadastro -
Boa tarde Danilo,
Uma dica é: se o campo Id_CadastroPlano da sua tabela Cadastro_Planos for o campo da sua Primary Key, é preferível dar um Select na Tabela SysIndexes retornando o campo Rows, é muito mais rápido dependendo do tamanho da sua tabela. Ex:
Declarre @cod_smallint
Select @cod_smallint = IsNull(Rows,1) From SysIndexes
Espero ter ajudado