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

SQL-比较两个不同表中的值?,sql,sql-server,Sql,Sql Server,所以我有两个不同的表,用一行更新_元数据,如下所示: |Updated_Date| 2020-06-05 00:00:00.0000000 还有另一个表,我从中查询单个最大日期: select max(distinct Date_Col) from data_table 基本上,如果Updated_Date

所以我有两个不同的表,用一行更新_元数据,如下所示:

|Updated_Date|
2020-06-05 00:00:00.0000000
还有另一个表,我从中查询单个最大日期:

select max(distinct Date_Col) from data_table 
基本上,如果Updated_Date
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
但我试过了,从这个错误来看,我无法使用IF:

关键字“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\u New\u数据)完全限定所有表名和存储过程名


您也不需要DISTINCT。

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

IF (SELECT Updated_Date FROM update_metadata) < (SELECT MAX(Date_Col) FROM data_table) 
BEGIN
  EXEC Update_New_Data;
END;
注意:最佳实践是使用模式(例如dbo.Update\u New\u数据)完全限定所有表名和存储过程名

你也不需要区分