修改sql SELECT查询中的值

时间:2014-11-14 20:02:59

标签: sql

我有以下sql查询:

SELECT town,latitude,longitude FROM coordinates

以下将返回例如

"California,10.02313,20.123213"

我正在使用查询结果在gmaps上放置标记。但是,如果我有10个加州标记,它们会堆积起来,因为坐标是相同的。

我想在lat和lng中添加一个(非常小的)随机数,所以标记会出现在加利福尼亚州的限制范围内,但它们不会堆积起来。

我如何添加,让我们说FLOOR(RAND() * 0.0030)+0.0040到lat和lng,结果将是:

"1,California,10.02322,20.123254"
"2,California,10.02313,20.123213"

注意坐标的微小变化,但仍然在加利福尼亚的州限制范围内(变化非常小)

2 个答案:

答案 0 :(得分:2)

SELECT后面可以跟任意表达式,它们不必只是列名。所以你可以写:

SELECT town,
       latitude + FLOOR(RAND() * 0.0030)+0.0040 AS latitude,
       longitude + FLOOR(RAND() * 0.0030)+0.0040 AS longitude

答案 1 :(得分:0)

+0.004是不必要的,因为它没有随机化数据,它只是为它添加一个常数

SELECT town, FLOOR(RAND() * 0.0030) + latitude as latitude, FLOOR(RAND() * 0.0030) + longitude as longitude FROM coordinates

我还建议不要添加地板,因为它可能只是向列添加0(因为它将偏移量舍入到整数)而不是像

那样

SELECT town, (RAND() * 0.0030 + latitude) as latitude, (RAND() * 0.0030 + longitude) as longitude FROM coordinates