一个SQL语句,有点复杂,请帮忙看看,(200分)

  • 主题发起人 主题发起人 唐太宗
  • 开始时间 开始时间

唐太宗

Unregistered / Unconfirmed
GUEST, unregistred user!
有三个字段:
A B C
好 10.00
坏 20.00
好 100.00
好 300.00
坏 80.00
坏 30.00
想合并为两个字段,请问怎么写
AB C
好 10.00
坏 20.00
好 100.00
好 300.00
坏 80.00
坏 30.00
就是把两个字段合为一个字段那样,有点急,请多多指教.

 
select AB=A+B,C from table
 
select A+B AB,C from 表
 
select isnull(A,'')+isnull(B,'') as AB,C FROM table
 
SELECT X.A AS AB,X.C AS C FROM TABLE AS X WHERE X.A<>''
UNION
SELECT Y.B AS AB,Y.C AS C FROM TABLE AS Y WHERE Y.B<>''
 
刚才表达出错了,应该是这样的意思,不好意思
好 坏
100
300
100
300
200
200
变为
好坏方向 金额
好 100
好 300
坏 100
坏 300
好 200
坏 200
//请大家踊跃发言.
 
不可能,除非你再加一个“好坏方向”字段
 
就是没有呀,如果有当然好写了,我在想利用临时表或者游标在存储过程中怎么解决,

//提前此贴,谢谢发言.
 
select 好坏方向=case when 好 is null then '坏' else '好' end,
金额=case when 好 is null then 坏 else 好 end from table
 
直接用SQL是不行的,要用游标,太复杂.
 
select (case 好 when null then 坏 else 好 end) as 金额,
(case 好 when null then '坏' else '好' end) as 好坏方向 from table

不好意思,字段调反了,好久没有些过SQL了,大概可以吧,没有经过测试

刚才写多了点东西,现在改回来了
 
SELECT (CASE WHEN 好<>'' THEN '好' ELSE '坏' END) AS 好坏方向,
(CASE WHEN 好<>'' THEN 好 ELSE 坏 END) AS 金额
FROM TABLE
 
总是把简单的问题复杂话:强烈建议修改表结构
BorGTag sum
1 100
0 200
0 100
1 200
1 100
 
改结构肯定不行,这是别人的设计呀,没办法,
我认为使用游标来在存储过程中可能比较好了.
 
select '好' as 好坏方向 ,好 as '金额'
from table
where 好 is not null
union
select '坏' as 好坏方向 ,坏 as '金额'
from table
where 坏 is not null
 
同意最上
 
别人都说出答案了……
 
就是...都说了...我都没得说了...
 
谢谢大家的帮助.
 
后退
顶部