在一个表中,有Proc_OrderDate 和Proc_Date两个字段,sql="Select * FROM Proc WHERE CONVERT(varchar(100), Proc_DATE, 23)='" & Format(Date, "yyyy-mm-dd") & "' OR CONVERT(varchar(100), Proc_OrderDATE, 23)='" & Format(Date, "yyyy-mm-dd") & "' AND CONVERT(varchar(100), Proc_DATE, 23)> CONVERT(varchar(100), Proc_OrderDATE, 23)"但是这里面有个问题,我不知道在这里怎么解决,就是如果其中一个为空的话就不对了.我想要如下解果,就是选择这两个字段为条件,列取条件等于这个两字段的记录,但是还要对比这两个字段,如果Date和OrderDate的其中一项为空一项不为空的话那么列取各自条件想等的值,如果两项都不为空,则列取等于Date字段的值.应该怎么做.
解决方案 »
- 这个字符怎么更新掉?
- 请教一个MS SQL时间段查询问题
- 求助:sql字符串处理"c:\XXXX\333.dat"如何取得"c:\XXXX\"
- 这样的语句在sqlserver中可以,可到了access中怎么不行?怎么解决
- 如何将数据导出为CSV文档?
- 想写这样一个存储过程,可以循环插入的。
- SQL 索引 会引响数据正确性吗
- 请问有没有在项目中使用uniqueidentifier做主键的
- 关于用游标更新的问题
- 100分求解,写一个函数
- sql2000中如何删除没有主键的表中重复数据并保留一条数据(过程中不插入新表)?
- 我用的是sql2000,用select找到数据后怎么用sql怎么自动添加个序号的字段啊?
(OrderDate is null and ...) or
(Date is not null and OrderDate is not null and date = ...)
sql="Select * FROM Proc WHERE CONVERT(varchar(100), Proc_DATE, 23)='" & Format(Date, "yyyy-mm-dd") & "' OR CONVERT(varchar(100), Proc_OrderDATE, 23)='" & Format(Date, "yyyy-mm-dd") & "' AND CONVERT(varchar(100), isnull(Proc_DATE,'1900-01-01'), 23)> CONVERT(varchar(100), isnull(Proc_OrderDATE,'1900-01-01'), 23)"