楼上的可以帮忙转换一下吗:
SELECT p, xx, qjbh, uh, ulk, un, un1, s, f, f1, 'DRange' = CASE WHEN xx IN ('1', '2', '3', '4') 
      THEN ROUND(20 * log (CAST(p AS float) / CAST(f AS float)), 2) WHEN xx IN ('5', '6', '7', 
      '8') THEN ROUND(20 * log (CAST(p AS float) / CAST(f AS float)) 
      + 20 * log (CAST(un AS float) / CAST(uh AS float)), 2) END
FROM csjl3
WHERE (qjbh = '1111')
ORDER BY xx

解决方案 »

  1.   


    SELECT p, xx, qjbh, uh, ulk, un, un1, s, f, f1,
    iif( xx IN ('1', '2', '3', '4'
    , ROUND(20 * log (p /f), 2)
     ,iif(xx IN ('5', '6', '7', '8'
    ,ROUND(20 * log (p /f) + 20 * log (un /uh ), 2),null))
    asDRange
    FROM csjl3
    WHERE (qjbh = '1111')
    ORDER BY xx
      

  2.   


    SELECT p, xx, qjbh, uh, ulk, un, un1, s, f, f1,
    iif( xx IN ('1', '2', '3', '4'
    , ROUND(20 * log (p /f), 2)
     ,iif(xx IN ('5', '6', '7', '8'
    ,ROUND(20 * log (p /f) + 20 * log (un /uh ), 2),null))
    as DRange  
    FROM csjl3
    WHERE (qjbh = '1111')
    ORDER BY xx
      

  3.   

    楼上的大虾做得不错,可否不用IIF嵌套呢,用union可不可以?