查看: 8191|回复: 9

大家能看懂这SQL的条件吗?

[复制链接]
论坛徽章:
2
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44优秀写手
日期:2014-03-08 06:00:12
发表于 2014-3-6 13:40 | 显示全部楼层 |阅读模式
HI,
   我碰到个SQL条件有点看不懂,大家能帮我解释下吗

decode(nvl(inst.i_id,'1'),'2','2','3','3','1') = decode('#INSTITUTION#','2','2','3','3','1')


招聘 : 系统分析师
论坛徽章:
483
马上有钱
日期:2014-02-19 11:55:14itpub13周年纪念徽章
日期:2014-09-29 01:14:14itpub13周年纪念徽章
日期:2014-10-08 15:15:25itpub13周年纪念徽章
日期:2014-10-08 15:15:25马上有对象
日期:2014-10-12 11:58:40马上有车
日期:2014-11-16 17:11:29慢羊羊
日期:2015-02-09 17:04:38沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31ITPUB年度最佳版主
日期:2015-03-18 15:48:48
发表于 2014-3-6 14:41 | 显示全部楼层
decode函数和nvl函数,自己搜下就知道整个条件的含义了

使用道具 举报

回复
论坛徽章:
403
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2014-3-6 16:01 | 显示全部楼层
右侧全是常量?

使用道具 举报

回复
论坛徽章:
80
生肖徽章2007版:牛
日期:2012-08-02 22:43:00紫蛋头
日期:2012-12-08 09:43:38鲜花蛋
日期:2012-11-17 12:02:07鲜花蛋
日期:2013-02-05 21:53:34复活蛋
日期:2012-11-17 12:02:07SQL极客
日期:2013-12-09 14:13:35SQL数据库编程大师
日期:2013-12-06 13:59:43SQL大赛参与纪念
日期:2013-12-06 14:10:50ITPUB季度 技术新星
日期:2012-11-27 10:16:10最佳人气徽章
日期:2013-03-19 17:24:25
发表于 2014-3-6 16:11 | 显示全部楼层
〇〇 发表于 2014-3-6 16:01
右侧全是常量?

#INSTITUTION#,这个肯定是其他工具要传给sql的参数

使用道具 举报

回复
认证徽章
论坛徽章:
285
生肖徽章2007版:虎
日期:2014-06-23 20:17:04生肖徽章2007版:虎
日期:2014-09-18 12:50:09生肖徽章2007版:虎
日期:2014-11-14 14:21:28生肖徽章2007版:虎
日期:2014-06-23 20:42:17生肖徽章2007版:虎
日期:2014-06-23 20:42:17红宝石
日期:2017-04-06 13:47:15秀才
日期:2017-04-06 13:42:06秀才
日期:2017-04-06 13:41:23秀才
日期:2017-03-28 15:59:38紫水晶
日期:2017-04-06 13:47:28
发表于 2014-3-6 16:15 | 显示全部楼层
#INSTITUTION# 传的是2,查出表 inst 中i_id=2的记录
#INSTITUTION# 传的是3,查出表 inst 中i_id=3的记录
#INSTITUTION# 传的既不是2也不是3,则查出表 inst 中i_id 既不是2也不是3的记录

使用道具 举报

回复
论坛徽章:
1
目光如炬
日期:2015-07-05 22:00:01
发表于 2014-3-6 16:27 | 显示全部楼层
'#INSTITUTION#'这个是表示啥意思啊?第一次见到#号

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6348
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-3-6 16:51 | 显示全部楼层
pwz1688 发表于 2014-3-6 16:27
'#INSTITUTION#'这个是表示啥意思啊?第一次见到#号

不都说了么?
就是一个定义变量的形式....

使用道具 举报

回复
论坛徽章:
5
优秀写手
日期:2013-12-18 09:29:112014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上有钱
日期:2014-10-17 12:56:56处女座
日期:2015-08-30 22:09:39
发表于 2014-3-6 20:54 | 显示全部楼层
我觉得,楼主很有必要深入的了解下decode,nvl,case这些条件语句。

使用道具 举报

回复
论坛徽章:
0
发表于 2014-3-7 16:13 | 显示全部楼层
INSTITUTION 传入 '2'    查询出  inst.i_id='2' 的结果
INSTITUTION 传入 '3'    查询出  inst.i_id='3' 的结果
INSTITUTION 传入 非'2'和'3'之外的其他值   查询出  inst.i_id is null 的结果


decode oracle特有函数,相当于case when

nvl(inst.i_id,'1') 该函数表示  inst.i_id is null 就返回  '1' 否则 返回 inst.i_id值

使用道具 举报

回复
求职 : 数据分析/ETL
论坛徽章:
16
鲜花蛋
日期:2014-08-09 15:15:33秀才
日期:2019-11-14 15:05:06秀才
日期:2019-11-14 15:03:23秀才
日期:2019-11-14 14:53:19秀才
日期:2019-11-14 14:44:34秀才
日期:2019-11-14 14:31:30目光如炬
日期:2018-07-01 22:00:00目光如炬
日期:2018-04-02 17:00:02火眼金睛
日期:2017-11-30 22:00:00火眼金睛
日期:2017-11-01 17:00:02
发表于 2014-3-7 21:44 | 显示全部楼层
udfrog 发表于 2014-3-6 16:11
#INSTITUTION#,这个肯定是其他工具要传给sql的参数

应该就是这个参数难倒了楼主吧

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表