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;
------解决方案--------------------
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>