查询条件有两种,第一种 查询 ID,name 条件是 Time > getdate()
第二种 查询 ID,name 条件是 Time < getdate()
想将两结果合在一起,用 union all 吗。
可是当 time 变了 第一种 查询不到记录的时候,就只会显示第二种;
也就是只有一条记录,我都不知道是哪一种了。
...全文
15012打赏收藏
这个SQL怎么写
只有一个表,字段 ID , name , Time 查询条件有两种,第一种 查询 ID,name 条件是 Time > getdate() 第二种 查询 ID,name 条件是 Time < getdate() 想将两结果合在一起,用 union all 吗。 可是当 time 变了 第一种 查询不到记录的时候,就只会显示第二种; 也就是只有一条记录,我都不知道是哪一种了。
加一个标记字段
SELECT ID,name,'1' flag WHERE Time > getdate()
UNION ALL
SELECT ID,name,'2' flag WHERE Time< getdate()
或者
SELECT ID,name,CASE WHEN Time > getdate() THEN '1' ELSE '2' END flag WHERE Time<>getdate()
程序中得到结果集后,可以通过flag字段进行判断属于哪种情况