資料庫是 SQL Server 2017。
如何在兩個選擇之間執行邏輯與運算?
問題是:我需要檢查某個時間范圍內是否沒有執行特定行程(count <=0)以及佇列中是否有訊息(count >0)。如果前面的陳述句為真,則回傳 1。任何其他組合回傳 0
檢查執行次數
select count(*) as 'workflow_count'
from MY_TABLE
where 1=1
and [PROCESS] = 'A'
and [DATE] > DATEADD(MINUTE, -5, GETDATE())
檢查訊息數
select SUM(total) as 'message_count'
from
(select count(*) total
from [dbo].[QUEUE1]
union all
select count(*) total
from [dbo].[QUEUE2]) s
uj5u.com熱心網友回復:
您可以使用case和 [ not] exists(子查詢)
select
case when (not exists (
select 1
from TABLE
where 1=1
and [PROCESS] = 'A'
and [DATE] > DATEADD(MINUTE, -5, GETDATE()))
) and exists (
select 1
from [dbo].[QUEUE1]
)
then 1 else 0 end x;
uj5u.com熱心網友回復:
您可以使用選擇檢查第一個表,并在 where 子句中包含對第二個表的檢查:
SELECT TOP 1 1 AS RESULT
FROM TBL
WHERE 1=1
AND [PROCESS] = 'A'
AND [DATE] > DATEADD(MINUTE, -5, GETDATE())
AND EXISTS(SELECT 1 FROM dbo.QUEUE1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/325100.html
標籤:sql sql-server
下一篇:按條件將一列拆分為幾列
