簡體   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