天嵌 ARM开发社区

 找回密码
 注册
查看: 2476|回复: 1

sqlite查找问题

[复制链接]
0backspace0 发表于 2013-5-9 23:08:50 | 显示全部楼层 |阅读模式
http://www.armbbs.net/forum.php? ... tid=10504&page=
参考了这个例程,现在想查找数据库中是否某列中是否有一段字符串比如“abc”,是否有能直接返回0,1的函数,请赐教。
TQ-lkp 发表于 2013-5-10 17:26:23 | 显示全部楼层
1.decode函数:
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
    decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。例如在表s_emp中,给特定部门的员工加不等的薪水:
select dept_id,decode(dept_id,34,salary*2,
                                          45,salary*1,
                                          44,salary*3) "new salary"
from s_emp;
   decode作用就相当于一个表达式,把不同情况的结果显示在那一列,后面可以起别名,默认整个decode()就是列名.

2.case-when-then:
case when expression1 then result1 when expression2 then result2 ....else result end)
case-when-then判断表达式的真假,如果为真,返回结果;如果为假,返回else值;如果未定义else值,则返回空值。例如还是上面那个例子:
select last_name,dept_id,(case when dept_id=34 then salary*2
                                           when dept_id=45 then salary*3
                                           else salary
                                    end) "new salary"
from s_emp;
    case-when-then作用就相当于一个表达式,把不同情况的结果显示在那一列,后面可以起别名,默认整个case-when-then就是列名.

   不难看出,decode和case-when-then作用是一样的,只不过写法上不同而已。两者之间是可以相互转化的。具体使用哪种方法,就看个人的习惯了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-4 16:56 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表