Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2016, 15:42
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Funciones Escalares en SQL SERVER

Podrias regresar solo un valor y despues este valor separarlo en los 2 que necesitas :)

Código SQL:
Ver original
  1. CREATE FUNCTION [dbo].[modaHora]
  2. (
  3.     @fecha datetime,
  4.     @hr    INTEGER
  5. )
  6. RETURNS VARCHAR(3)
  7. AS
  8. BEGIN
  9.     DECLARE @moda VARCHAR(3), @cuenta DECIMAL  
  10.    
  11.     SELECT TOP 1    @moda = DIR_VIENTO_TXT + '|' +
  12.                      CONVERT(VARCHAR(2),COUNT(DIR_VIENTO_TXT) )
  13.     FROM datos15minutos
  14.     WHERE FECHA = @fecha AND HORA = @hr AND DIR_VIENTO_TXT <> 'NULL'        
  15.     GROUP BY DIR_VIENTO_TXT ORDER BY COUNT(*) DESC
  16.  
  17.     IF @cuenta = 1
  18.     BEGIN
  19.         SET @moda = NULL
  20.     END
  21.    
  22.  
  23.     RETURN @moda
  24. END

y ya con esos valores podrias hacer algo como esto:

Código SQL:
Ver original
  1. DECLARE @var VARCHAR(20)
  2. DECLARE @valor1 VARCHAR(20)
  3. DECLARE @valor2 VARCHAR(20)
  4. SET @var='a|a'
  5. SELECT @valor1=SUBSTRING(@var,1,charindex('|',@var)-1)
  6. SELECT @valor2=SUBSTRING(@var,charindex('|',@var)+1,len(@var))
  7. print @valor1
  8. print @valor2

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 15/03/2016 a las 15:55