这种SQL怎么写呢?

[复制链接]
查看11 | 回复5 | 2010-10-8 09:31:21 | 显示全部楼层 |阅读模式
Select *From 个人基本信息 t Where Case 传入参数 when'0' Then t.入库时间 >Sysdate -30 when '1' Then sysdate end
在PLSQL里边不行呢?
我是想根据 传入参数决定 where 条件。条件为时间类型。
谢谢!

回复

使用道具 举报

千问 | 2010-10-8 09:31:21 | 显示全部楼层
那肯定不行,case when的结果不能是boolean类型
应该写成t.入库时间> case '...' when '0' then sysdate-30 when '1' then sysdate end..
回复

使用道具 举报

千问 | 2010-10-8 09:31:21 | 显示全部楼层
学习了
回复

使用道具 举报

千问 | 2010-10-8 09:31:21 | 显示全部楼层
把Where后面的Case换成In。如何?
回复

使用道具 举报

千问 | 2010-10-8 09:31:21 | 显示全部楼层
Select *From 个人基本信息 t Where (传入参数 ='0' and t.入库时间 >Sysdate -30) or ( 传入参数='1'andt.入库时间 >Sysdate)

回复

使用道具 举报

千问 | 2010-10-8 09:31:21 | 显示全部楼层
这个表好熟悉哟。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行