Oracle中Case的使用,该如何处理
Oracle中Case的使用
有一张表
VARCHAR UserName; //用户名 )、
NUMBER UserType; //类型 0普通用户 1是会员
需求:我有一个功能是(查询) 已知用户名,查询用户的类型
Select case UserType where 0 then 普通用户 when 1 then 会员 end form 表 where UserName='用户名'
(现在有个问题 如果随便写个用户名 查不出任何数据 那么这条查询语句没有结果的,如何进行空行的判断?)
默认如果查询不到该用户的信息 我让UserType 为-1?
我发现使用: when UserType is null then -1 是无法得到数据的?该怎么写呢?
表中只有2条数据:用户名为(张三,李四)
(如果实现如下的数据):
Select case UserType is null where -1 end form 表 where UserName='王二哥' --这条语句是错误的
到底该怎么写呢?????????
------解决方案--------------------
select nvl((select usertype from table where username = '&1' ),-1) usertype from dual;
------解决方案--------------------
有一张表
VARCHAR UserName; //用户名 )、
NUMBER UserType; //类型 0普通用户 1是会员
需求:我有一个功能是(查询) 已知用户名,查询用户的类型
Select case UserType where 0 then 普通用户 when 1 then 会员 end form 表 where UserName='用户名'
(现在有个问题 如果随便写个用户名 查不出任何数据 那么这条查询语句没有结果的,如何进行空行的判断?)
默认如果查询不到该用户的信息 我让UserType 为-1?
我发现使用: when UserType is null then -1 是无法得到数据的?该怎么写呢?
表中只有2条数据:用户名为(张三,李四)
(如果实现如下的数据):
Select case UserType is null where -1 end form 表 where UserName='王二哥' --这条语句是错误的
到底该怎么写呢?????????
------解决方案--------------------
select nvl((select usertype from table where username = '&1' ),-1) usertype from dual;
------解决方案--------------------
- SQL code
Microsoft Windows [版本 6.1.7600] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:\Users\Administrator>sqlplus test\password SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 19 13:30:32 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. 请输入用户名: test 输入口令: 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select nvl((select usertype from us where username = 'ls' ),-1) usertype fr om dual; USERTYPE ---------- -1 SQL>