首页 新闻 会员 周边

.Net与数据库的映射表,数据库问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-11-25 14:13
我现在有数据表A  表中有很多字段 假设有 N M G H W T 这几个字段
N M G H W T
0 1  1  0  1  1
1 0  0  1  0  0
1 0  1  0  1  0        假设 N M 的值为1的时候 返回"主要问题"  G H 为1的时候返回"次要问题"  W T为1的时候返回"其他问题" 。
每一个字段都要判断一遍。返回的类型是string[3] 如"主要问题,次要问题,其他问题" 现在我想做个映射表去查询数据库有哪些问题,
用Direction去怎么定义。请教了!
如果直接通过存储过程或者sql语句查怎么做呢?
静心看世界的主页 静心看世界 | 初学一级 | 园豆:5
提问于:2012-08-14 09:28
< >
分享
最佳答案
0

我怎么觉得直接写if还快呢

if (N|M)  return 主要问题;

else if (G|H) return 次要问题;

else if (W|T) return 其他问题;

else 报错

收获园豆:50
CrazyJinn | 小虾三级 |园豆:799 | 2012-08-14 09:32

return就直接跳出存储过程了。  如果 N M有一个是1那就直接跳出去了。后面的就没发判断了啊

静心看世界 | 园豆:5 (初学一级) | 2012-08-14 09:42

@静心看世界: 为何要使用存储过程,直接在程序里面判断就好

CrazyJinn | 园豆:799 (小虾三级) | 2012-08-14 10:14

@CrazyJinn: 讲究传输效率啊。

静心看世界 | 园豆:5 (初学一级) | 2012-08-14 10:56

@静心看世界: 

Set @Result='';

if (N|M)  

set @Result=@Result+'主要问题,';

if (G|H) 

set @Result=@Result+'次要问题,';

if (W|T) 

set @Result=@Result+'其他问题,';
return @Result;
CrazyJinn | 园豆:799 (小虾三级) | 2012-08-14 13:46
其他回答(2)
0

看的有点蒙圈

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-08-14 10:17
0

大概就是这个意思吧:

--create table a (n bit,m bit,g bit,h bit,w bit,t bit);
--insert into a(n,m,g,h,w,t)values(0,1,1,0,1,1),(1,0,0,1,0,0),(1,0,1,0,1,0);
select case 
        when n=1 or m=1 then '主要问题'
        when g=1 or h=1 then '次要问题'
        when w=1 or t=1 then '次要问题'
        else 'error' end
from a;

不太清楚N M 的值为1的时候 返回"主要问题"  G H 为1的时候返回"次要问题"  W T为1的时候返回"其他问题"这句话的具体意思,所以我就写成了这种or的关系。
这种情况不需要写存储过程,直接的sql就行。

方外老和尚 | 园豆:361 (菜鸟二级) | 2012-10-29 19:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册