繁体   English   中英

SQL - 比较两个不同表中的值?

[英]SQL - Compare values from two different tables?

所以我有两个不同的表, update_metadata的一行看起来像:

|Updated_Date|
2020-06-05 00:00:00.0000000

和另一个表,我从中查询单个最大日期:

select max(distinct Date_Col) from data_table 

基本上,如果Updated_Date < Date_Col ,即如果data_table已更新,我想运行一个过程Update_New_Data 但我不确定如何准确设置查询。 我试过了:

WITH data_date AS (select max(distinct Date_Col) FROM data_table),
update_date AS (select Updated_Date from update_metadata)
IF ( update_date < data_date ) 
BEGIN
**procedure SQL query here**
END

但我试过了,看起来我不能以这种方式将WITHIF一起使用,来自这个错误:

关键字“IF”附近的语法不正确。

如何正确地做到这一点?

不需要 CTE - 只需将您的查询直接移动到IF语句中,如下所示:

IF (SELECT Updated_Date FROM update_metadata) < (SELECT MAX(Date_Col) FROM data_table) 
BEGIN
  EXEC Update_New_Data;
END;

注意:最佳实践是使用模式完全限定所有表名和存储过程名称,例如dbo.Update_New_Data

你也不需要DISTINCT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM