我有一个用户定义的函数(在Microsoft Access中),它从两个字段中获取值并返回一个字符串,该字符串对应于列名。
这似乎不太清楚;下面是我尝试做的简化示例。不幸的是,我无法使用真正的问题,因为它是保密的。
输入:
Num1 | Num2 | Field1 | Field2 | Field3 | Field4 | Field5 .....|......|........|........|........|........|....... .....|......|........|........|........|........|....... .....|......|........|........|........|........|....... SQL query: "SELECT Num1,Num2,Func(Num1,Num2)
输出:
Num1 | Num2 | FieldVal
在输出中,FieldVal可以是Field1,Field2,Field3,Field4或Field5的值,具体取决于Num1和Num2。截至目前,我有一个用户定义的函数,它根据两个输入(Num1和Num2)确定使用哪个字段(1,2,3,4或5)。
我想我想说的是我想根据Num1和Num2查询不同的列。
答案 0 :(得分:2)
您可以使用IIF功能,例如:
SELECT
Num1,
Num2,
IIF(NUM1 < NUM2, Field1, IIf(NUM1 = NUM2,Field1, Field2))
我已将操作NUM1 < NUM2
和NUM1 = NUM2
用作示例,只要结果为布尔值,您就可以使用任何其他操作。
请注意,我只详细介绍了两个嵌套IIF
,但您可以根据需要进行嵌套。
了解更多信息:http://www.techonthenet.com/access/functions/advanced/iif.php
答案 1 :(得分:1)
您可以使用switch
语句,例如:
select switch(
Func(Num1,Num2) = 1, Field1,
Func(Num1,Num2) = 2, Field2,
Func(Num1,Num2) = 3, Field3,
...)