所以如果我让我们说下面的Excel公式,其中A到I代表列。
A B C D E F G H
1 2 3 4 5 6 =IF(A=1;"Yes";"No") =IF(G = "Yes"; "Absolutely Yes"; "No")
I
=IF(H = "Absolutely Yes"; "Definitely Yes!"; "No")
现在我正在使用SQL Server中的多个#temp表进行翻译。所以
SELECT A,B,C,D,E,F,G,
IIF(A=1, 'Yes','No') AS CONCLUSION_1
INTO #TEMP_1
FROM TABLE
SELECT A,B,C,D,E,F,G, CONCLUSION_1,
IIF(CONCLUSION_1 = 'Yes', 'Absolutely Yes', 'No') AS CONCLUSION_2
INTO #TEMP_2
FROM #TEMP_1
SELECT A,B,C,D,E,F,G, CONCLUSION_1,
IIF(CONCLUSION_2 = 'Absolutely Yes', 'Definitely Yes', 'No') AS FINAL_CONCLUSION
INTO FINAL_TABLE
FROM #TEMP_2
这只是一个简单的例子,但Excel公式包含嵌套的IF语句,我使用IIF或CASE语句进行翻译,其结果需要重复使用,然后AGAIN那些第二次结果需要重用,就像在小例子。但是,必须有比创建#temp表更好的方法吗?
答案 0 :(得分:2)
为什么不同时做这些?它们不以任何方式递归或循环:
SELECT A,B,C,D,E,F,G,
IIF(A=1, 'Yes','No') AS CONCLUSION_1,
IIF(A=1, 'Absolutely Yes', 'No') AS CONCLUSION_2,
IIF(A=1, 'Definitely Yes', 'No') AS FINAL_CONCLUSION
FROM TABLE