2011-08-01 15 views

Respuesta

17

Con declaración de caso:

CASE 
    WHEN ((@Latitude IS NOT NULL) AND (@Longitude IS NOT NULL)) 
    THEN geography::Point(@Latitude, @Longitude, 4326) 
    ELSE NULL   
END 

o una variante si:

DECLARE @Location geography = NULL 
IF (@Latitude IS NOT NULL AND @Longitude IS NOT NULL) 
    SET @Location = geography::Point(@Latitude, @Longitude, 4326); 
2

que he encontrado la solución por mí mismo:

geography::STPointFromText(
    'POINT(' + CAST(@lon AS VARCHAR(20)) + ' ' + CAST(@lat AS VARCHAR(20)) + ')', 4326) 
+1

no me gusta esto. Primero se convierte en varchar, luego en concatenación de cadenas y luego conversión a punto. – Anderson

+1

@Anderson, alguna alternativa? –

+0

Sí. (relleno para llenar 15 caracteres) – Anderson

Cuestiones relacionadas