decode语句(在线等)

contech 2004-09-02 10:04:34
下面这个语句
decode(v_LastRslt,-1,-1,u.intRsltID)=@v_LastRslt
小弟是在不知如何转变为Sybase中的nullif语句,
nullif中只有两个表达式呀,这有四个,望大虾指教。
...全文
215 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
北极海hein 2004-09-02
decode(v_LastRslt,-1,-1,u.intRsltID)
相當于:
case v_LastRslt when -1 then -1 else u.intRsltID
回复
yujiabian 2004-09-02
不可能吧!decode()是oracle特有的,别的都没有实现这样的功能,我估计你所说的sybase中的nullif应该等同于oracle中nvl()
回复
contech 2004-09-02
如果对应case when,decode中应有五个变量,比如:
WHERE DECODE (deptno,10,'HR', 20,'Sales') = 'Sales'
相当于
WHERE (CASE deptno WHEN 10 THEN 'HR' WHEN 20 THEN 'Sales' END) = 'Sales'
可我的语句是这样的:
decode(v_LastRslt,-1,-1,u.intRsltID)
不知怎样改?
回复
bzszp 2004-09-02
sybase的不知道
decode应该相当于sql server的case when 语句
回复
shbjwq430105 2004-09-02
返回第一个非空表达式 DECODE(oracle) COALESCE(sql server)
回复
contech 2004-09-02
我问的可能有点问题,我在网上搜到说oracle中decode相当于Sybase(or SQL Server)中的nullif,所以才这样问的。

如果decode和nullif不同的话,那应该对应什么?谢谢
回复
bzszp 2004-09-02
nullif是什么功能
感觉好像是相当于oracle的nvl()
回复
spland 2004-09-02
Oracle 中判NULL用
NVL(v_LastRslt,想要变化的值)
DCECODE(v_LastRslt,条件1,变化1,条件2,变化2,……,变化(对应ELSE))
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2004-09-02 10:04
社区公告
暂无公告