注册

详解MySQL的SIGN()函数:返回一个数的符号

MySQL的SIGN()函数用来返回数字的符号,即正数返回1,负数返回-1,零则返回0。该函数常常与其他函数一起使用,用于实现一些数值型运算过程中的条件判断。

SIGN()函数的语法如下:

SIGN(number)

其中,number为需要判断的数字,可以是一个数字型字段、一个数字型表达式或者一个数字型变量。

下面提供两个实例说明:

使用SIGN()函数实现对指定数字的判断

假设有一个表mytable,其中有一个字段number,需要使用SIGN()函数对该字段进行判断,如果是正数则返回"positive",否则返回"negative"。

SELECT 
  CASE 
    WHEN SIGN(number) = 1 THEN 'positive' 
    ELSE 'negative' 
  END 
FROM mytable;

使用SIGN()函数实现对产品折扣的判断

假设需要对一个产品的折扣进行判断,如果折扣超过30%则进行标记,否则返回原值。可以通过以下方式实现:

SELECT 
  CASE 
    WHEN discount > 0 AND (discount / price) > 0.3 THEN CONCAT('*', discount) 
    ELSE discount 
  END AS discount 
FROM products;

其中,discount表示产品的折扣,price表示产品的原价,如果折扣比例超过30%,则通过CONCAT()函数在折扣前添加一个星号标记。如果折扣比例不超过30%,则直接返回原值。