Sybase IQ常用函数大全--杂项函数

29 篇文章 0 订阅
9 篇文章 0 订阅

Sybase IQ常用函数大全–杂项函数

查询索引:

  1. COALESCE 函数:返回列表中的第一个非 NULL 表达式。
  2. IFNULL 函数:返回第一个非空值表达式或 NULL。
  3. ISNULL 函数:返回参数列表中的第一个非 NULL 表达式的值。必须向此函数至少传递两个表达式。ISNULL 函数与 COALESCE 函数相同。
  4. ISNUMERIC 函数:测试字符串参数是否可以转换为数字。如果可以进行转换,则此函数返回 1;否则返回 0。如果参数为 NULL,则返回 0。
  5. NEWID 函数:生成 UUID(通用唯一标识符)值。返回的 UUID 值为二进制值。UUID 与 GUID(全局唯一标识符)相同。详情略。
  6. NUMBER 函数:为查询结果中的每个连续行生成从 1 开始的编号。
  7. ROWID 函数:返回表的每一行的内部行 ID 值。

1. COALESCE 函数

返回列表中的第一个非 NULL 表达式。

语法:
COALESCE ( <expression>, <expression> [ ,] )
解析:
参数说明
表达式任意表达式
示例:
-- 以下语句返回值 34:
SELECT COALESCE( NULL, 34, 13, 0 ) FROM iq_dummy

2. IFNULL 函数

返回第一个非空值表达式或 NULL。如果第一个表达式为 NULL 值,则返回第二个表达式的值。如果第一个表达式不为 NULL,则返回第三个表达式的值。如果第一个表达式不是 NULL,并且没有第三个表达式,则返回 NULL 值。

语法:
IFNULL ( <expression1>, <expression2> [ , <expression3> ] )
解析:
参数说明
expression1要计算的表达式。它的值决定是返回 还是 。
expression2当 为 NULL 时的返回值。
expression3当 不为 NULL 时的返回值。
示例:
-- 以下语句返回值 -66:
SELECT IFNULL( NULL, -66 ) FROM iq_dummy

-- 下面的语句将返回 NULL,这是因为第一个表达式不为 NULL,并且没有第三个表达式:
SELECT IFNULL( -66, -66 ) FROM iq_dummy

3. ISNULL 函数

返回参数列表中的第一个非 NULL 表达式的值。必须向此函数至少传递两个表达式。

语法:
ISNULL ( <expression>, <expression> [, <expression> ] )
解析:
参数说明
表达式要测试是否为 NULL 的表达式。
  • ISNULL 函数与 COALESCE 函数相同。
示例:
以下语句返回值 -66SELECT ISNULL( NULL ,-66, 55, 45, NULL, 16 ) FROM iq_dummy相关信息第 287 页上的“COALESCE 函数 [杂项]6.11.90 ISNUMERIC 函数 [杂项]测试字符串参数是否可以转换为数字。如果可以进行转换,则此函数返回 1;否则返回 0。如果参数为 NULL,则返回 0。语法ISNUMERIC ( <string> )参数参数

4. ISNUMERIC 函数

测试字符串参数是否可以转换为数字。如果可以进行转换,则此函数返回 1;否则返回 0。如果参数为 NULL,则返回 0。

语法:
ISNUMERIC ( <string> )
解析:
参数说明
string要分析的字符串(分析目的是确定该字符串是否代表有效的数值)。
示例:
-- 以下示例测试 height_in_cms 列中是否保存有效的数值数据,它以 NULL 的形式返回无效的数值数据,并以 int 格式返回有效的数值数据。
select case
when isnumeric(height_in_cms)=0
then NULL
else cast(height_in_cms as int)
end
from MyData

5. 略

6. NUMBER 函数

为查询结果中的每个连续行生成从 1 开始的编号。

语法:
NUMBER ( * )
解析:
  • 仅在选择列表中或 NUMBER 语句的 SET 子句中使用 UPDATE 函数。例如,以下语句使用比前一行大 1 的数字来更新 seq_id 列中的每一行。该数字的应用顺序由 ORDER BY 子句指定。
  • 在 UPDATE 语句中,如果 NUMBER() 函数用在 SET 子句中,并且 FROM 子句指定一对多连接,则 NUMBER() 会生成唯一的数字,这些数字会增加,但由于删除行,可能不会按顺序递增。
示例:
SELECT NUMBER( * )
FROM Departments
WHERE DepartmentID > 10

7. ROWID 函数

返回表的每一行的内部行 ID 值。

语法:
ROWID ( <table-name> )FROM <table-name>
解析:
参数说明
table-name表的名称。在括号内指定不带引号或带双引号的表名。
  • 您可以结合使用 ROWID 函数与其它子句来操作表的特定行。
  • 必须指定 FROM 子句。
示例:
-- 以下语句返回行 ID 值 1 到 10:
SELECT ROWID( “PRODUCTS” ) FROM PRODUCTS
-- 以下语句返回产品 ID 值小于 400 的所有行的产品 ID 和行 ID 值:
SELECT PRODUCTS.ID, ROWID ( PRODUCTS )
FROM PRODUCTS
WHERE PRODUCTS.ID < 400

结果:

IDrowid(Products)
3001
3012
3023
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值