decode语句(在线等)

contech 2004-09-02 10:04:34
下面这个语句
decode(v_LastRslt,-1,-1,u.intRsltID)=@v_LastRslt
小弟是在不知如何转变为Sybase中的nullif语句,
nullif中只有两个表达式呀,这有四个,望大虾指教。
...全文
240 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
北极海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))

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧