最近机构改革,单位裁员,我是新手,老板今天突然写了一个access的查询语句来问我,让我用oracle环境下实现与access查询语句相同,我晕,问了我的几个哥们,他们都不行,谁能尽快帮我???表结构如下: 字段名称user_table(用户表) 序号 姓名
role_table(角色表) 角色代码 角色名称
user_role(用户与角色对应表) 用户 角色
老板的access语句如下: SELECT 角色代码 ,
角色名称 ,
iif(isnull(用户),1,0) as checked
FROM (select * from user_role where 用户 = :userno) as user_role RIGHT JOIN role_talbe ON user_role.角色 = role_talbe.角色代码 老板让我写oracle下的sql语句替换上述的access下的sql语句,操他妈,存心难为我,请问大家谁能帮帮我?
role_table(角色表) 角色代码 角色名称
user_role(用户与角色对应表) 用户 角色
老板的access语句如下: SELECT 角色代码 ,
角色名称 ,
iif(isnull(用户),1,0) as checked
FROM (select * from user_role where 用户 = :userno) as user_role RIGHT JOIN role_talbe ON user_role.角色 = role_talbe.角色代码 老板让我写oracle下的sql语句替换上述的access下的sql语句,操他妈,存心难为我,请问大家谁能帮帮我?
解决方案 »
- 请问这个插入语句的“标识符”无效哪里有问题。。。
- XP系统下如何优化oracle10g的cpu使用
- 如何给Oracle数据库分配内存
- 存储过程里输出输入参数是number 的不能指定小数点位数吗,varchar的也不能指定长度吗?
- 如何建一个用户只有增册改查.?
- 如何知道blob字段是否被修改过?
- 网络游戏用啥数据库?
- 一个面试题,有关存储过程题.在线等急等!!百分相赠!!!
- 帮我看看这个函数创建时为什么出错
- 怎么定义布尔型?
- 关于oracle服务的2个问题
- Oracle表中一个字段类型为varchar2, 且是不允许为null, 但在往这个表插入数据时我不想往这个字段里面写东西, 能做得到吗?
from (select * from user_role where 用户=:userno) user_role,role_table
where user_role.角色(+) = role_table.角色代码oralce的版本支持非标准sql的(+),所以可以这么写。select 角色代码,角色名称,nvl(用户,1,0) checked
from (select * from user_role where 用户=:userno) user_role right join role_table
on user_role.角色 = role_talbe.角色代码 oracle 9以后的,也可以用标准的sql写.
from (select * from user_role where 用户=&userno) user_role,role_table
where user_role.角色(+) = role_talbe.角色代码
角色名称 ,
decode(用户,null,1,0) as checked
FROM (select * from user_role where 用户 = :userno) as user_role RIGHT JOIN role_talbe ON user_role.角色 = role_talbe.角色代码几乎都是差不多的但是我不太清楚ACCESS的IIF
else 取 0
from (select * from user_role where 用户=&userno) user_role right join role_table
on user_role.角色 = role_talbe.角色代码
返回由逻辑测试确定的两个数值或字符串值之一。语法
数字
IIf(«Logical Expression», «Numeric Expression1», «Numeric Expression2»)如果 «Logical Expression» 取值为 TRUE,则此函数返回 «Numeric Expression1»,否则,返回 «Numeric Expression2»。字符串
IIf(«Logical Expression», «String Expression1», «String Expression2»)如果 «Logical Expression» 取值为 TRUE,则此函数返回 «String Expression1»,否则,返回 «String Expression2»。注释
只有当 «Logical Expression» 的值为零时,才认为该表达式是 FALSE。任何其它值都被解释为 TRUE。不推荐用 Iif 函数基于搜索条件创建成员的集合。请改用 Filter 函数根据逻辑表达式评估指定集合中的每个成员,然后返回成员的子集合。示例
数字
如果 Measures.CurrentMember 是空单元,则下面的示例返回 0,否则返回 1:IIf(IsEmpty(Measures.CurrentMember), 0, 1)字符串
如果 Measures.CurrentMember 是空单元,则下面的字符串返回字符串 "Yes",否则返回字符串 "No":IIf(IsEmpty(Measures.CurrentMember), "Yes", "No")
这能行么。。nvl只有两个参数好么
只能用decode用户=:userno 改成 用户=&userno 是什么意思?
from (select * from user_role where 用户=&userno) user_role,role_table
where user_role.角色(+) = role_table.角色代码