SQLite 函数大集合(一)

——— 核心函数————–

abs(x)

abs函数会尝试将当前字段值转换成整型,再取绝对值。

abs(x)的返回值有以下几种情况:

  1. x值为正值和0,abs(x)函数返回x本身。
  2. x为负值,abs(x)函数返回x的绝对值,也就是-x.
  3. x为null,abs(x)函数返回为null.
  4. x为字符串、Blob等不能转换为数值的类型,abs(x)函数返回0.
  5. 如果x的值超出64位整数值范围,abs(x)函数会抛出一个溢出错误。

changes函数

使用changes函数可以获取最近一次执行SQL语句影响的记录行数。

insert into table values(1,"小张");
        select changes();

coalesce函数

返回第一个不为null的字段值。

select coalesce(name,id)  as values from table1;

length(x)

顾名思义,取长度值的。

length(x)的返回值有以下几种情况:

  1. x为字符串类型,返回值为字符串中包含的字符数。
  2. x为Blob类型的值,返回二进制数据中包含的字节数。
  3. x为null,abs(x)函数返回为null.
  4. x为null值,返回null。
  5. x为数值型,length会将数值作为字符串处理。例如,length(123)的值是3。

like函数和like子句

“y like x”子句和like(x,y)函数功能完全相同,都可以使用通配符对字符串进行匹配。例如“%”代表0或多个任意字符串,“_”表示任意的单个字符。虽然like子句和like函数功能相同,但x,y的位置刚好相反(like函数这里x表示含通配符的字符串,y表示待匹配的字符串)。

使用like函数的SQL语句:

select * from table1 where like('%bill%',name);

使用like子句的SQL语句:

select * from table1 where name like '%bill%';

nullif(x,y)

当x,y值不同时,返回x;
当x,y相同时,返回null;

select nullif(20,30); //输出20
select nullif(20,20);//输出null

sbustr函数

截取字符串的子字符串。
substr有substr(x,y)和snustr(x,y,z),其中x是原字符串,y是要截取的字符串的第一个字符在原字符串中的位置,z表示要截取的字符串的长度。如果不指定z,substr会截取y后的所有字符串。如果y为正值,表示起始位置从原字符串左侧开始。如果y为负值,表示起始位置从原字符串右侧开始。如果z为负数,会取z的绝对值。

//从"abcdefg"的第2个位置截取后面所有的字符串,结果是"bcdefg"
select substr('abcdefg',2)
//从"abcdefg"的第2个位置截取长度为3的字符串,结果是"bcd"
select substr('abcdefg',2,3)

//从"abcdefg"右侧第2个位置截取所有的字符串,结果为"fg"
select substr('abcdefg',-2)

//从"abcdefg"右侧第4个位置截取长度为4的字符串,结果为"de"
select substr('abcdefg',-4,2)

typeof函数

获取当前字段的数据类型

select typeof(filed1) from table1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值