SELECT DECODE(PDED_B4_CPF,'N',DED_DESC||'*', DED_DESC) DED_DESC_B4
FROM PAY_DED
----
select (case PDED_B4_CPF when null then DED_DESC+'*' else DED_DESC end) DED_DESC_B4 from PAY_DED
FROM PAY_DED
----
select (case PDED_B4_CPF when null then DED_DESC+'*' else DED_DESC end) DED_DESC_B4 from PAY_DED
Oracle语句:
SELECT DECODE(PDED_B4_CPF,'N',DED_DESC||'*', DED_DESC) DED_DESC_B4
FROM PAY_DED
转化为MS SQL语句 咋写ora的DECODE等同于sqlserver的case..whensqlserver:
SELECT case PDED_B4_CPF when 'N' then DED_DESC+'*'
else DED_DESC
end as DED_DESC_B4
FROM PAY_DED2.多存储过程连用
这个有点麻烦,首先在存储过程1查到多个字段,表分为A,B,C,D,E,F,G,H,I
存储过程2查到多个字段,表分为J,K
存储过程3查到多个字段,表分为L,M
存储过程4查到多个字段,表分为N,O
4个存储过程查到几个具有同性字段(这样说不知道对不对):X_EMP_NO,X_MM,X_YY,这三个字段的值是在4个存储过程中都是一样的
4个存储过程是为显示一张复杂报表设计的,这4个存储过程要连接合并到一样用怎么办,比如,我要将我在存储过程查到的所有值填充到一个DataSet.xsd设计的一个XML表中,怎么办?这个问题两解:
1.写第5个存储过程,调用这4个,获取返回值组合之后写到xml
2.4各过程修改成函数,在select中调用这次个函数,直接写入xml
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)ELSE
RETURN(缺省值)
END IF
你写的第1个问题的答案不是那样的,'N'不代表Null值啊
create table #tbl(name1 nvarchar(20),name1 nvarchar(20))
----------------------------------------------------------
第二步:
create procedure p1
as
begin
declare @name1 nvarchar(20)
select @name1=name1 from tbl1 update #tbl set name1=@name1
endcreate procedure p2
as
begin
declare @name2 nvarchar(20)
select @name2=name2 from tbl2 update #tbl set name2=@name2
end
第三步:
-----------------------
exec p1
exec p2select * from #tbl第四步:
----------------------
drop table #tbl