简体   繁体   English

VBA 脚本中的多个 case 语句

[英]multiple case statement in VBA script

I am running into an error when writing these multiple 'case when' statements in Excel VBA. The scripting runs perfectly in SQL Server, but I am having trouble formatting it correctly in Excel VBA so that it can run correctly.我在 Excel VBA 中编写这些多个“case when”语句时遇到错误。脚本在 SQL 服务器中运行完美,但我无法在 Excel VBA 中正确格式化它,以便它可以正确运行。 Please help?!请帮忙?!

This is how you would write a long string in VBA:这是在 VBA 中写入长字符串的方式:

    StrQuery = "Select" & _
" case when srvprovid like '01%' then 'AL'" & _
"      WHEN srvprovid like '02%' then 'AK'" & _
"      WHEN srvprovid like '03%' then 'AR'" & _
" ..."

And this is what I suggest you to do instead (just a sample showing the idea, didn't write full code):这就是我建议你做的(只是一个展示想法的示例,没有编写完整的代码):

DECLARE @sample TABLE (srvProvId VARCHAR(10), id INT IDENTITY);
INSERT INTO @sample (srvProvId) VALUES 
('010'),
('01'),
('020'),
('030'),
('040');

DECLARE @states VARCHAR(1000) = 'AL,AK,AR,AZ,CA,CO,CT'; -- DE,DC,FL...
DECLARE @tally TABLE (id INT IDENTITY, abrv CHAR(2));

INSERT @tally (abrv)  
SELECT value FROM STRING_SPLIT(@states, ',') ;

SELECT * 
FROM @sample t1
LEFT JOIN @tally t2 ON t1.srvProvId LIKE RIGHT('0'+CAST(t2.id AS VARCHAR(2)),2)+'%';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM