2011-08-01 18 views

Odpowiedz

17

Z instrukcji case:

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

lub wariant, jeżeli:

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

Znalazłem rozwiązanie o sobie:

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

nie podoba mi się to. Najpierw rzucasz na varchar, a następnie łącz konkatenację, a następnie konwersję do punktu. – Anderson

+1

@Anderson, jakieś alternatywy? –

+0

Tak. (wypełniacz do wypełnienia 15 znaków) – Anderson

Powiązane problemy