SQL Server IF EXISTS THEN 1 ELSE 2
Usando O Servidor Sql 2012. Eu tenho um procedimento armazenado e parte dele verifica se um nome de usuário está em uma tabela. Se for, retorne um 1, Se não, retorne um 2. Este é o meu código:
IF EXISTS (SELECT * FROM tblGLUserAccess WHERE GLUserName ='xxxxxxxx') 1 else 2
No entanto, continuo a receber o erro abaixo:
Isto é possível com um "se"?sintaxe incorrecta perto de '1'.
Atenciosamente,
Michael
5 answers
Se o queres fazer desta maneira, então esta é a sintaxe que procuras;
IF EXISTS (SELECT * FROM tblGLUserAccess WHERE GLUserName ='xxxxxxxx')
BEGIN
SELECT 1
END
ELSE
BEGIN
SELECT 2
END
Você não precisa estritamente das declarações, mas provavelmente é melhor entrar nesse hábito desde o início.
SELECT IIF (EXISTS (SELECT 1 FROM tblGLUserAccess WHERE GLUserName ='xxxxxxxx'), 1, 2)
Também, se o uso existir para verificar a resistência das linhas, não use *, use apenas 1. Acredito que não tenha custado.
Qual é a saída que precisas, select
ou print
ou .. assim por diante.
Por isso, utilize o seguinte código:
IF EXISTS (SELECT * FROM tblGLUserAccess WHERE GLUserName ='xxxxxxxx') select 1 else select 2
Pode definir uma variável @Result
para preencher os seus dados nele
DECLARE @Result AS INT
IF EXISTS (SELECT * FROM tblGLUserAccess WHERE GLUserName ='xxxxxxxx')
SET @Result = 1
else
SET @Result = 2
Em SQL sem SELECT
Você não pode resultar em nada. Em vez de IF-ELSE
Bloco, prefiro usar CASE
para este
SELECT CASE
WHEN EXISTS (SELECT 1
FROM tblGLUserAccess
WHERE GLUserName = 'xxxxxxxx') THEN 1
ELSE 2
END