条件表达式

条件表达式用于判断条件是否成立,以执行相应的语句或功能。条件表达式应用到 IF 语句、IF 短语句、CASE 语句、CASE 短语句、WHILE 语句、EXIT 语句和 CONTINUE 语句中。条件表达式由一个或多个基本条件式构成,基本条件式之间再通过逻辑运算最后得到最终的结果。条件表达式的结果为布尔类型,只有真true或假false两个值。

基本条件式

基本条件表达式用于比较两个变量、值或表达式是否满足给定的操作符条件,如果是表达式,会计算完表达式的值再进行比较。基本操作符包括:

“相等”和“不相等”可以比较任何类型的值,但一般用于基本数据类型的比较。如果是复合类型,会先转成字符串再进行比较。“大于”、“大于等于”、“小于”、“小于等于”,一般用于数字类型比较,也可用于日期 时间比较,如果是字符串,则会使用排序规则进行比较,如'A' < 'Z'true

逻辑运算 AND/OR/NOT

逻辑运算用于两个基本表达式结果之间的进一步运算,只有三个运行符:与AND、或OR和非NOT。逻辑运算只接受布尔类型的值。

逻辑运行符优先级:在同一个逻辑运算表达式中,如果表达式没有被小括号包含,且同时拥有 3 个运算符,则计算顺序是先NOTAND最后OR。不过为了增加程序的可读性,建议用小括号对复杂的逻辑运算进行分组,分组还可以多重嵌套。

除了基本运行符之外,PQL 还提供了跟 SQL 语句一样的扩展运算符INEXISTLIKEIS,下面分别介绍。

判断元素是否在一个集合中 IN

与 SQL 中的IN表达式意义相同,判断指定变量的值或元素是否在一个集合(确切的说是数组)中。例如:

IN 表达式判断的内容如果是表达式,必须用小括号括起来。

判断一个查询语句是否有返回值 EXISTS

与 SQL 中EXISTS表达式的意义相同,但是除了 SELECT 语句之外,支持其他的查询语句。

EXISTS 表达式只支持有结果的查询语句,且需要用小括号括起来。EXISTS 还支持文件和目录是否存在的判断,见 FILE 语句DIR 语句

LIKE 关键词

与 SQL 中的LIKE表达式意义相同,用于判断字符串是否模糊匹配另一个指定字符串。

在 PQL 中,LIKE用得比较少,Sharp 表达式中提供丰富的字符串的操作方法,见下面的 “Sharp 中的布尔表达式”。

NULL/UNDEFINED/EMPTY 关键词

在介绍 PQL 变量时,同时介绍了变量的几种状态,这里补充一下变量状态判断的内容。

数据类型判断

虽然 PQL 会自动推断数据类型,但是有时仍需要对数据类型进行判断以进行相应的操作。数据类型判断需要使用数据类型关键词。目前支持的数据类型关键词如下:

数据类型也用ISIS NOT进行判断。

Sharp 表达式中的布尔操作

在 Sharp 表达式中,为各数据类型提供了丰富的处理方法,其中也包括了一些判断操作,上述的 LIKE 和 NOT LIKE 就是通过 Sharp 表达式的逻辑实现的。每个 Sharp 表达式基本式由“数据+连接+参数”构成,其中参数有时可省略。这里只介绍与判断有关的表达式,其他的在Sharp表达式中介绍。

更多 Sharp 布尔表达式正在扩展。由于 Sharp 表达式的存在,函数的作用基本被忽略。PQL 到当前版本为止,仍缺少对函数的支持。在未来的某个版本中(预计0.7.0之前),PQL 会把函数添加进来,到时条件表达式会增加布尔函数的内容。


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!