一起养成写作习惯!这是我参与「掘金日新计划 · 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-expression为NULL,或者它是非数字字符串,则为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函数。