最近机构改革,单位裁员,我是新手,老板今天突然写了一个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语句,操他妈,存心难为我,请问大家谁能帮帮我?
解决方案 »
- oracle如何执行包的存储过程
- 分组求和的问题
- oracle恢复到某个时间点
- PB调用ORACLE9I存储过程出错,但在ORACLE8i里正常的
- 求助:pro*c编译SQL时遇到的问题
- 北京公司 招聘oracle DBA
- 写入中文时变乱码
- 我的数据库为什么在服务里启动了,但使用还要以DBA身份进去把事例启动
- oracle里面如何知道一个游标的sql语法里面有多少个字段slect a,b,c from tablename 知道是3各字段
- access中有ROWNUM吗?
- 关于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.角色代码