[英]IF statement from a temp table
我有一個臨時表,其中某些列包含數字。 我想使用臨時表中的列,並將它們與IF語句進行比較。
...
INSERT INTO #tmp
EXEC [p_GetComplete] @Car_ID
IF Col1 + Col2 = Col3
BEGIN
PRINT 'OK'
END
ELSE
BEGIN
PRINT 'NO'
END
...
使SQL在SET上運行,因此,只要可以,請避免使用CASE WHEN和IF:
您可以通過以下方式做到這一點(推薦):
SELECT 'Ok' FROM #tmp WHERE Col1+Col2=Col3
UNION ALL
SELECT 'NO' FROM #tmp WHERE NOT (Col1+Col2=Col3)
或者這樣:
SELECT CASE WHEN Col1+Col2=Col3 THEN 'Ok' ELSE NO FROM #tmp WHERE
根據某些條件,當要將不同的值插入#tmp表時,可以使用case語句。
如:
SQL Server:CASE WHEN OR THEN ELSE END =>不支持OR
如果要搜索每條記錄並進行一些打印,請參見以下示例: http : //technet.microsoft.com/zh-cn/library/ms180152.aspx
祝好運!!!
大概是, exec
程序只返回一行,而捕獲數據的唯一方法是放入表中。 您可以重寫存儲過程以使其具有正確的OUTPUT
參數,但讓我們假設這是不可能的。
您可以按照自己的意願做:
INSERT INTO #tmp
EXEC [p_GetComplete] @Car_ID
IF exists(select * from #temp where Col1 + Col2 = Col3)
BEGIN
PRINT 'OK';
END
ELSE
BEGIN
PRINT 'NO';
END;
也就是說,如果存在滿足條件的行,則打印'OK'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.