第125章 SQL函数 SIGN

117 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第28天,点击查看活动详情

第125章 SQL函数 SIGN

返回给定数值表达式符号的数值函数。

大纲

SIGN(numeric-expression)

{fn SIGN(numeric-expression)}

参数

  • numeric-expression - 要为其返回符号的数字。

SIGN 返回 SMALLINT 数据类型。

描述

SIGN 返回以下内容:

  • -1 如果 numeric-expression 小于零。
  • 如果 numeric-expression 为零,则为 0(零):0+0-0
  • 如果 numeric-expression 大于零,则为 1
  • 如果 numeric-expressionNULL,或者它是非数字字符串,则为 NULL

SIGN 可用作 ODBC 标量函数(使用花括号语法)或 SQL 通用函数。

SIGN 在确定其值之前将数值表达式转换为规范形式。例如,SIGN(-+-+3)SIGN(-3+5) 都返回 1,表示一个正数。

注意:两个负号(连字符)是内嵌注释指示符。因此,指定两个连续负号的 SIGN 参数必须显示为用引号括起来的数字字符串。

示例

以下示例显示了 SIGN 的效果:

SELECT SIGN(-49) AS PosNeg

-1
SELECT {fn SIGN(-0.0)} AS PosNeg

0
SELECT SIGN(-+-16.748) AS PosNeg

1
SELECT {fn SIGN(NULL)} AS PosNeg

NULL

比较列表和分隔字符串

列表的优点

  • 列表不需要指定的分隔符。虽然$PIECE函数允许管理包含多个数据项的字符串,但它取决于留出一个字符(或字符串)作为专用分隔符。使用分隔符时,总有可能其中一个数据项包含作为数据的分隔符字符,这将丢弃分隔字符串中各部分的位置作为专用分隔符。列表对于完全避免分隔符非常有用,因此允许将任何字符或字符组合作为数据输入。
  • 从列表(使用$LIST$LISTNEXT)检索数据元素比从分隔字符串(使用$PIECE)检索数据元素更快。对于顺序数据检索,$LISTNEXT$LIST快得多,而且两者都比$PIECE快得多。

分隔字符串的优点

  • 带分隔符的字符串允许使用$find函数更灵活地搜索数据内容。因为$LISTFIND要求完全匹配,所以不能在列表中搜索部分子字符串。因此,在上面的示例中,即使地址“one Memorial Drive”以字符“one”开头,使用$LISTFIND在邮件列表中搜索字符串“one”也会返回0(表示失败)。
  • 因为分隔字符串是标准字符串,所以可以对其使用所有标准字符串函数。因为 Caché列表是编码字符串,所以只能对 Caché列表使用$LIST函数。