繁体   English   中英

转换SQL查询以使用Microsoft Access

[英]Converting SQL query to work with Microsoft Access

我需要在MS Access中运行以下SQL查询。 有人能够解释如何将其转换为正确的语言吗?

    UPDATE osmm_topo.boundaryline SET style_description =
CASE    
    WHEN featurecode = 10136 THEN 'Parish Boundary'
    WHEN featurecode = 10131 THEN 'District Boundary'
    WHEN featurecode = 10128 THEN 'Electoral Boundary'
    WHEN featurecode = 10127 THEN 'County Boundary'
    WHEN featurecode = 10135 THEN 'Parliamentary Boundary'
    ELSE 'Unclassified' 
END,
style_code = 
CASE
    WHEN featurecode = 10136 THEN 1
    WHEN featurecode = 10131 THEN 2
    WHEN featurecode = 10128 THEN 3
    WHEN featurecode = 10127 THEN 4
    WHEN featurecode = 10135 THEN 5
    ELSE 99 
END;

我认为Tahe Switch功能将是您遇到的情况的朋友:

UPDATE osmm_topo.boundaryline SET style_description =
Switch(
  featurecode = 10136, 'Parish Boundary',
  featurecode = 10131, 'District Boundary',
  featurecode = 10128, 'Electoral Boundary',
  featurecode = 10127, 'County Boundary',
  featurecode = 10135, 'Parliamentary Boundary',
  True, 'Unclassified'),
style_code = 
Switch(
  featurecode = 10136, 1,
  featurecode = 10131, 2,
  featurecode = 10128, 3,
  featurecode = 10127, 4,
  featurecode = 10135, 5,
  True, 99);

您可以尝试使用IIF

IIf(expr,truepart,falsepart)

而不是在ms-accessCASE WHEN

UPDATE osmm_topo.boundaryline SET style_description = IIF(featurecode = 10136, 'Parish Boundary',IIF(featurecode = 10131,'District Boundary',IIF(featurecode = 10128,'Electoral Boundary',IIF(featurecode = 10127,'County Boundary',IIF(featurecode = 10135,'Parliamentary Boundary','Unclassified'))))) ,
style_code = IIF(featurecode = 10136, 1 IIF(featurecode = 10131,2,IIF(featurecode = 10128,3,IIF(featurecode = 10127,4,IIF(featurecode = 10135,5,99))))) 

暂无
暂无

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

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