sql 判断怎么写?

abc818 2009-12-20 08:58:55
在case when语句中判断一语句,如果表time1中year字段的值存在,并且大于表day中d1字段和d2字段的和,则输出“可以”;如果表time1中year字段的值不存在,并且表time2中year字段的值大于表day中d1字段和d2字段的和,则输出“可以”,这样要怎么写呢?
...全文
109 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
syw_java 2009-12-21
  • 打赏
  • 举报
回复
when后面不是可以直接写条件吗
dawugui 2009-12-21
  • 打赏
  • 举报
回复
你的描述太乱了,大致如下(自己修改)
select t1.* , t2.*
case when t1.year is not null and t1.year >= t2.d1 + t2.d2 then '可以'
else '不可以'
end
from time t1 , day t2 where t1.id = t2.id
abc818 2009-12-20
  • 打赏
  • 举报
回复
time1表和time2表中的year值的意义不同,所以要先判断。如果用if语句进行判断应该怎么嵌套在case when语句中呢?
gao__910 2009-12-20
  • 打赏
  • 举报
回复
按lz说的不管time1中的year值存不存在,只要其值大于day表中的字段1和字段2的和都输出‘可以’,其他则输出‘不可以’?这样跟判断time1中的year值存不存在有什么意义?
abc818 2009-12-20
  • 打赏
  • 举报
回复
这是一个存储过程,要在程序里调用,上面是一部分要处理的条件,这点我不知道怎么弄。
ACMAIN_CHM 2009-12-20
  • 打赏
  • 举报
回复
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
abc818 2009-12-20
  • 打赏
  • 举报
回复
time1和time2没任何关系,time1和time2表中分别有id和year两个字段,有一time表有id1和id2两个字段,当time1.year存在时,且time1.year>day.d1+day.d2时输出“可以”,如果time1.year不存在,但满足time2.year>day.d1+day.d2,也可以输出“可以”。

select t1.year,t2.year
case when …… then '可以'
else '不可以'
from time as t
left join t.id1=t1.id
left join t.id2=t2.id
where

是这个样子的
gxjwqm 2009-12-20
  • 打赏
  • 举报
回复
case when time1.year is not null and time1.year>day.d1+day.d2 then '可以'
when time1.year is null and time2.year>day.d1+day.d2 then ' 不可以'
end

time1和time2 是一对一的 ?
  • 打赏
  • 举报
回复
[Quote=引用楼主 abc818 的回复:]
在case when语句中判断一语句,如果表time1中year字段的值存在,并且大于表day中d1字段和d2字段的和,则输出“可以”;如果表time1中year字段的值不存在,并且表time2中year字段的值大于表day中d1字段和d2字段的和,则输出“可以”,这样要怎么写呢?
[/Quote]

case when time1.year is not null and time1.year>day.d1+day.d2 then '可以' 
when time1.year is null and time2.year>day.d1+day.d2 then ' 不可以'
end

这样?
--小F-- 2009-12-20
  • 打赏
  • 举报
回复
if exists(select 1 from time1 a, day1 b where a.[year]>b.[d1]+b.[d2])
print '可以'


如果表time1中year字段的值不存在,并且表time2中year字段的值大于表day中d1字段和d2字段的和,则输出“可以”,
???这个不是冲突了?
ACMAIN_CHM 2009-12-20
  • 打赏
  • 举报
回复
没看懂。

建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

bancxc 2009-12-20
  • 打赏
  • 举报
回复
两个表什么关系 time1,time2

34,588

社区成员

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

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