在我的 Django-Python 應用程式中實作它之前,我目前正在通過 SQL Server Management Studio 查詢運行以下代碼。
在 if 陳述句開始之前,我無法弄清楚如何參考相關資料庫:
詢問:
If Age1 IS NULL
set @Current = DCBalance
Select Account, Name, E-mail , Age1 , Age2 , Age3 , Age4 , Age5 , @Current ,DCBalance from [Graceland Estates BC].[dbo].[_avCustomerAging]
Else Age1 IS NOT NULL
If UADebit <> '0' and DCBalance > 0
Set @Current = DCBal - Sum(Age1, Age2, Age3 , Age4, Age5)
Select Account , Name , E-mail , Age1 , Age2 , Age3 , Age4 , Age5 , @Current , DCBalance from [Graceland Estates BC].[dbo].[_avCustomerAging]
Else UADebit = '0' and DCBalance < 0
Set @Age1X = fForeignBalance Age1 - FCAge1
Set @Age2X = fForeignBalance Age2 - FCAge2
Set @Age3X = fForeignBalance Age3 - FCAge3
Set @Age4X = fForeignBalance Age4 - FCAge4
Set @Age5X = fForeignBalance Age5 - FCAge5
Set @Current = 0
Select Account , Name , E-mail , @Age1X , @Age2X , @Age3X , @Age4X , @Age5X , @Current , DCBalance
Else UADebit = '0' and DCBalance > 0
Set @Ages = '0'
Select Account , Name , E-mail , @Ages , @Ages , @Ages , @Ages , @Ages , DCBalance as Current , DCBalance
在上面的代碼中,它的目的是確定資料是否與 if 陳述句中表示的內容相匹配,并根據資料的顯示方式進行計算。
這是我在包含 CASE 陳述句的情況下嘗試相同操作時的代碼:
Select Account, Name , EMail, Age1 AS Cur, Age2 , Age3 , Age4, Age5 ,DCBalance,
Case
When AccountLink = NULL Then Age1 = DCBalance and Age2 = 0 and Age3 = 0 and Age4 = 0 and Age5= 0
When UADebit <> 0 and DCBalance > 0 Then Age1 = DCBalance - (Age2 Age3 Age4 Age5)
When UADebit = 0 and DCBalance < 0 Then Age1 = 0 and Age2 = fForeignBalance Age2 - FCAge2 and Age3 = fForeignBalance Age3 - FCAge3 and Age4 = fForeignBalance Age4 - FCAge4 and Age5 = fForeignBalance Age5 - FCAge5
When UADebit = 0 and DCBalance > 0 Then Age1 = DCBalance and Age2 = 0 and Age3 = 0 and Age4 = 0 and Age5= 0
End
From [Kyle].[dbo].[_avCustomerAging]
Incorrect syntax near '='.執行時回傳錯誤
uj5u.com熱心網友回復:
CASEis an expression NOT a statement,在參考官方檔案時明確說明,即單個 case 運算式,無論分支數量如何,都可以回傳單個值。它不允許您運行查詢的條件部分。
此外,您無法NULL與=您使用IS NULL.
我認為以下包含您所針對的相同邏輯,但是現在調整它應該是微不足道的,因為您可以看到哪里出錯了。
SELECT Account, [Name], EMail, Age1, Age2, Age3, Age4, Age5, DCBalance,
CASE
WHEN AccountLink IS NULL THEN DCBalance
WHEN UADebit <> 0 AND DCBalance > 0 THEN DCBalance - (Age2 Age3 Age4 Age5)
WHEN UADebit = 0 AND DCBalance < 0 THEN 0
WHEN UADebit = 0 AND DCBalance > 0 THEN DCBalance
END AS Age1_New
,
Case
WHEN AccountLink IS NULL THEN 0
WHEN UADebit = 0 AND DCBalance < 0 THEN fForeignBalance Age2 - FCAge2
WHEN UADebit = 0 AND DCBalance > 0 THEN 0
END Age2_New
,
CASE
WHEN AccountLink IS NULL Then 0
WHEN UADebit = 0 AND DCBalance < 0 THEN fForeignBalance Age3 - FCAge3
WHEN UADebit = 0 AND DCBalance > 0 THEN 0
END Age3_New
,
CASE
WHEN AccountLink IS NULL THEN 0
WHEN UADebit = 0 AND DCBalance < 0 THEN fForeignBalance Age4 - FCAge4
WHEN UADebit = 0 AND DCBalance > 0 THEN 0
END Age4_New
,
CASE
WHEN AccountLink IS NULL THEN 0
WHEN UADebit = 0 AND DCBalance < 0 THEN fForeignBalance Age5 - FCAge5
WHEN UADebit = 0 AND DCBalance > 0 THEN 0
END Age5_New
FROM _avCustomerAging;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338232.html
標籤:sql sql-server 查询语句 if 语句
上一篇:如何使用混合分隔符(即方括號、空格和雙引號)來決議日志(nginx/apacheaccess.log)?并可選擇轉換為json
下一篇:即使條件為真也不執行if陳述句
