SQL SERVER - Criar Funcao Com IF

Bom dia pessoal!!
Estou tentando criar uma função basicamente simples no sql server, na qual preciso fazer um if. porém está dando erro de sintaxe.

vou deixar o código logo abaixo pra ver se alguém consegue me ajudar…

CREATE OR ALTER FUNCTION RETORNADADOS(@ID INT,@tipo char(1)) RETURNS TABLE
AS RETURN (
IF (@tipo='S')
BEGIN

SELECT * FROM usuario WHERE codigo=@ID

END
ELSE 
BEGIN
SELECT *   FROM usuario
END 

)

Ao tentar fazer um IF, você está tentando usar uma multi-statement table-valued function (MSTVF) ao invés de uma inline table valued function (TVF).
Por isso a sintaxe muda um pouco e as características mudam também (performance, por exemplo).

Para manter como uma TVF (que geralmente é mais rápida), você poderia escrever:

CREATE OR ALTER FUNCTION RETORNADADOS(@ID INT,@tipo char(1)) 
RETURNS TABLE
AS RETURN
  SELECT codigo, nome 
  FROM usuario 
  WHERE (@tipo != 'S' OR codigo=@ID)

Repare que o WHERE funciona como seu IF nesse caso.

Se tiver algo mais complexo e realmente precisa do IF, daí usaria a sintaxe de MSTVF:

CREATE OR ALTER FUNCTION RETORNADADOS(@ID INT,@tipo char(1)) 
RETURNS @Usuarios TABLE
(
  codigo int, 
  nome varchar(100)
) 
AS
BEGIN
  IF @tipo = 'S'
    INSERT INTO @Usuarios SELECT codigo, nome FROM usuario WHERE codigo=@ID
  ELSE
    INSERT INTO @Usuarios SELECT codigo, nome FROM usuario
  RETURN
END