>

美洲杯在线投注_2019美洲杯外围投注[投注官网]

热门关键词: 美洲杯在线投注,2019美洲杯外围投注[投注官网]

SQL中的decode及case when的用法

- 编辑:美洲杯在线投注 -

SQL中的decode及case when的用法

这是一个不错的示例,直接贴代码,首先要知道纬度值、经度值

在写 sql的时候我们会经常使用到decode函数,今天我们来讲一些decode的基本用法吧。

/** 
* @desc 根据两点间的经纬度计算距离 
* @param float $lat 纬度值 
* @param float $lng 经度值 
*/ 
function getDistance($lat1, $lng1, $lat2, $lng2) 
{ 
$earthRadius = 6367000; //approximate radius of earth in meters 

/* 
Convert these degrees to radians 
to work with the formula 
*/ 

$lat1 = ($lat1 * pi() ) / 180; 
$lng1 = ($lng1 * pi() ) / 180; 

$lat2 = ($lat2 * pi() ) / 180; 
$lng2 = ($lng2 * pi() ) / 180; 

/* 
Using the 
Haversine formula 

http://en.wikipedia.org/wiki/Haversine_formula 

calculate the distance 
*/ 

$calcLongitude = $lng2 - $lng1; 
$calcLatitude = $lat2 - $lat1; 
$stepOne = pow(sin($calcLatitude / 2), 2)   cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2); 
$stepTwo = 2 * asin(min(1, sqrt($stepOne))); 
$calculatedDistance = $earthRadius * $stepTwo; 

return round($calculatedDistance); 
} 

表达式:decode(列名,值1,值11,值2,值22,值3,值33......,值X)

表达式的意思:

       文字描述:如果列名对应的值等于值1,那么他的值就等于值11,如果列名对应的值是值2那么他的值就是值22,如果列名对应的值是值3那么他的值就是值33等等,条件都不满足,列名的值就是值X

       用java的语法来表达就是:

      if(列名的值==值1){  列名的值=值11      }

      else if(列名的值==值2){  列名的值=值22}

      else if(列名的值==值3){  列名的值=值33}

      。。。。。。。

      else{ 列名的值=值X}

     其实在sql中还有一种方法表达的来表达if else的判断语句,那就是 case when语句,但是case when 有两种表方式.

    用case when 来表达上面的语句:

本文由计算机教程发布,转载请注明来源:SQL中的decode及case when的用法