我现在有数据表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语句查怎么做呢?
我怎么觉得直接写if还快呢
if (N|M) return 主要问题;
else if (G|H) return 次要问题;
else if (W|T) return 其他问题;
else 报错
return就直接跳出存储过程了。 如果 N M有一个是1那就直接跳出去了。后面的就没发判断了啊
@静心看世界: 为何要使用存储过程,直接在程序里面判断就好
@CrazyJinn: 讲究传输效率啊。
@静心看世界:
Set @Result='';
if (N|M)
set @Result=@Result+'主要问题,';
if (G|H)
set @Result=@Result+'次要问题,';
if (W|T)
set @Result=@Result+'其他问题,';
return @Result;
看的有点蒙圈
大概就是这个意思吧:
--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就行。