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%,则直接返回原值。