求救??

Braint_Yuan 2008-03-12 07:54:08
表A有四个字段:
A1,A2,A3,A4
其中在大部分情况下A1,A2,A3的值都是“%”,特殊情况为具体值
现在要根据条件选出A4的值,做法是:
现在需要根据A1,A2,A3的值选择A4的值。筛选方式如下:当A3的值不为"%"的时候只根据A3的值筛选,如果A3为"%"A2不为"%",则由A2筛选,如果A3,A2都为"%"
A1不为"%",则由A1作为筛选条件。
如果都为"%",则直接忽略条件。
总的来说就是要通过A1,A2,A3作为条件,其中优先级为:A3,A2,A1.
...全文
105 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Braint_Yuan 2008-03-12
  • 打赏
  • 举报
回复
如果A3的值不是"%",则要根据A3的值筛选的。通过传入的参数和A3比较。
会传入三个参数,分别和A1,A2,A3比较。如果A3的值不为“%”在看A2,以此类推。
C语言和SQL的混合表示算法应该如下:
if(A3!="%"||A2!="%"||A1!="%")
{
select A4 from table where A3 = @A3
break;
if(A2!="%")
{
select A4 from table where A2 = @A2
break;
if(A1!="$")
{
select A4 from table where A1 = @A1
break;
}
}
}
else
select A4 from table

chen_liang747703 2008-03-12
  • 打赏
  • 举报
回复
湖人今天赢了!
呵呵!
loworth 2008-03-12
  • 打赏
  • 举报
回复
反正只要A1、A2、A3有一个不是%就肯定要查出来的 所以无所谓谁优先
loworth 2008-03-12
  • 打赏
  • 举报
回复
[CODE=SQL]
/*我觉得没什么优先级别的 直接先找A1是不是% 然后再找 B 然后C 查出的数据是一模一样的*/

SELECT [A4] FROM [表] WHERE [A1]+[A2]+[A3]<>'%%%'
[/CODE]

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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