SQLite学习手册(表达式)
来源:互联网 发布:围棋吃子软件 编辑:程序博客网 时间:2024/05/22 13:37
转自 http://www.cnblogs.com/stephen-liu74/archive/2012/02/20/2323907.html
一、常用表达式:
和大多数关系型数据库一样,SQLite能够很好的支持SQL标准中提供的表达式,其函数也与SQL标准保持一致,如:
||
* / %
+ -
<< >> & |
< <= > >=
= == != <> IS IS NOT IN LIKE
AND
OR
~ NOT
在上面的表达式中,唯一需要说明的是"||",该表达式主要用于两个字符串之间的连接,其返回值为连接后的字符串,即便该操作符两边的操作数为非字符串类型,在执行该表达式之前都需要被提前转换为字符串类型,之后再进行连接。
二、条件表达式:
该表达式的语法规则如下:
1). CASE x WHEN w1 THEN r1 WHEN w2 THEN r2 ELSE r3 END
2). CASE WHEN x=w1 THEN r1 WHEN x=w2 THEN r2 ELSE r3 END
对于第一种情况,条件表达式x只需计算一次,然后分别和WHEN关键字后的条件逐一进行比较,直到找到相等的条件,其比较规则等价于等号(=)表达式。如果找到匹配的条件,则返回其后THEN关键字所指向的值,如果没有找到任何匹配,则返回ELSE关键字之后的值,如果不存在ELSE分支,则返回NULL。对于第二种情况,和第一种情况相比,唯一的差别就是表达式x可能被多次执行,比如第一个WHEN条件不匹配,则继续计算后面的WHEN条件,其它规则均与第一种完全相同。最后需要说明的是,以上两种形式的CASE表达式均遵守短路原则,即第一个表达式的条件一旦匹配,其后所有的WHEN表达式均不会再被执行或比较。
三、转换表达式:
该表达式的语法规则如下:
CAST(expr AS target_type)
该表达式会将参数expr转换为target_type类型,具体的转换规则见如下列表:
如果转换将一个实数值转换为INTEGER类型,则直接截断实数小数部分。如果实数过大,则返回最大的负整数:-9223372036854775808。NUMERIC 如果转换文本值到NUMERIC类型,则先将该值强制转换为REAL类型,只有在将REAL转换为INTEGER不会导致数据信息丢失以及完全可逆的情况下,SQLite才会进一步将其转换为INTEGER类型。
最后需要说明的是,如果expr为NULL,则转换的结果也为NULL。
- SQLite学习手册(表达式)
- SQLite学习手册(表达式)
- SQLite学习手册(表达式)
- SQLite学习手册--数据类型
- SQLite学习手册(目录)
- SQLite学习手册(目录)
- SQLite学习手册
- SQLite学习手册
- SQLite学习手册(数据类型)
- SQLite学习手册(数据类型)
- SQLite学习手册
- SQLite学习手册(目录)
- Sqlite数据库学习手册
- SQLite学习手册(目录)
- SQLite学习手册 - 数据类型
- SQLite学习手册(目录)
- SQLite学习手册(目录)
- SQLite学习手册(开篇)
- ubuntu安装yii2.0
- python-numpy的基本用法02
- 一个前端项目,到底要集成多少库和工具
- 精仿今日头条
- HDU
- SQLite学习手册(表达式)
- 【ASP.NET】简介
- servlet方式下载之renponse详解
- Erase/Trim/Discard/Sanitize
- 全面的framebuffer详解(一)(转)
- #con5多校联盟 (李主席与阶乘)
- Android Assets目录的读和删除文件操作
- vector重新申请内存
- mysql创建多列组合唯一索引,unique index