0

我正在编写一个 sql 查询,我想检查表 a 中的一个日期时间字段是否大于表 b 中的一个日期时间字段。

任何帮助都将不胜感激。

我的查询看起来像这样:

SELECT A.AFIELD, B.BFIELD, ( <HERE I WANT TO PUT THE VALIDATION STATEMENT> ) AS 'VALIDATED AS' FROM A JOIN B ON A.AFIELD=B.AFIELD

验证声明应该像

If (A.XFIELD < B.YFIELD)
THEN "YES"
ELSE
"NO"

我正在尝试但无法这样做,如果有人可以提供帮助,那就太好了。

4

3 回答 3

0

你想要case语句

CASE WHEN datediff(d,A.XFIELD, B.YFIELD) > 0 THEN 'YES'  ELSE  'NO' END
于 2012-09-20T08:52:26.497 回答
0

你可以用case statement这个。

句法:

简单的 CASE 表达式:

CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 

搜索到的 CASE 表达式:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END

在你的情况下,它会像:

SELECT 
A.AFIELD, 
B.BFIELD, 
(
CASE 
WHEN
 A.XFIELD < B.YFIELD THEN 'YES'  
ELSE  'NO' 
END
) AS 'VALIDATED AS' 
FROM A JOIN B ON A.AFIELD=B.AFIELD

有关案例的详细信息,请参阅此处

于 2012-09-20T08:56:22.157 回答
0

像这样的东西

SELECT 
A.AFIELD, 
B.BFIELD, 
(
CASE WHEN A.XFIELD < B.YFIELD THEN 'YES'  
ELSE  'NO' 
END
) AS 'VALIDATED AS' 

FROM A JOIN B ON A.AFIELD=B.AFIELD
于 2012-09-20T08:53:43.657 回答