如果有多个变量和标准

时间:2015-08-06 00:00:53

标签: excel vba if-statement sql-like vb-like-operator

我很擅长在excel VBA中有背景的SQL,我正在尝试将一个大的excel vba脚本转换为SQL,这给我带来了一些麻烦,主要是if else语句。

下面的示例表;

  

Var1 ____________ Var2______________Var3 _________ Var4   34______________Testing_________________________1234D12345678   45______________Something________不确定________ G098751425   45______________FDS_____________不确定______参考价值   59______________Another__________ 09871345 ______ 1459864658787

我的查询的第一部分如下; 如果我想根据其他变量创建一个变量值,if-else语句是最好的方法吗?

if Var1 = '34' and Var2 = 'Testing' set NewVar = Label1
else if Var1 = '45' and Var2 = 'Testing' and Var3 = 'not sure' set NewVar = Label2
else if Var1 = '45' and Var2 = 'FDS' and Var4 = ' Reference Value ' set NewVar = Label3

第二部分; 我已经搜索了使用多个条件执行if else语句的最佳方法吗?并且运行良好吗?

if Var1 = '34' and Var2 = 'Testing' set NewVar = Label1

第三部分是; 什么是类似于vba的SQL语句? 例如 第一行,测试Var4是否有四个数字后跟'D',然后是8个数字。 vba看起来像这样

if Var4 like "####D########"

其中哈希表示一个数字 或者测试第3行是否以'not'开头

if Var3 like "not*"

*表示通配符

我有350个变量组合导致不同的NewVar值,这将运行数亿行数据,因此需要高效。 这是正确的方法,还是我陷入了vba思维模式,需要一种完全不同的SQL方法?

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

让我试着解决每个问题:

  

我的查询的第一部分如下;如果我想做一个   基于其他变量的变量值是if-else语句   最好的方式去?

     

+

     

第二部分;我已经搜索了if else语句的最佳方法   有多个标准吗?并且运作良好吗?

我建议你使用SQL case-when syntax,然后让数据库为你做点什么,比如:

select case 
            when var1 = '34' and var2 = 'Testing' then 'Label1'
            when var1 = '34' and var2 = 'Testing' then 'Label1'
end as newVal from YourTable
  

第三部分是;什么是类似于vba的SQL语句?例如   第一行,测试Var4是否有四个数字后跟' D'然后   接着是8个数字。

在SQL wild card single char operator' _'会像vba一样工作。

select column1 from your table where column1 like '____D________'
  

其中哈希表示数字或测试第3行是否以“不是”

开头

在SQL中,最常见的wild card operator是'%'。

select column1 from your table where column1 like 'not%'

此外,访问w3schools website,您将学习更多关于SQL语法的知识。