Invalid column name error in WHERE clause, column selected with CASE

后端 未结 4 1329
青春惊慌失措
青春惊慌失措 2020-12-20 16:09

I have a (rather complicated) SQL statement where I select data from lots of different tables, and to cope with a bad legacy data structure, I have a couple of custom colum

4条回答
  •  Happy的楠姐
    2020-12-20 16:22

    You can use a CTE - something like

    WITH CTE AS
    (
    SELECT 
         ..., 
         CASE channel 
             WHEN 1 THEN channel_1 
             WHEN 2 THEN channel_2 
             ... 
             ELSE 0 
         END AS ChannelValue, 
         CASE channelu 
             WHEN 1 THEN channelu_1 
             WHEN 2 THEN channelu_2 
             ... 
             ELSE '0' 
         END AS ChannelWithUnit, 
         ... 
     FROM  
    )
    SELECT * 
    FROM CTE
    WHERE ChannelValue > Limit * p.Percentage / 100 
    

提交回复
热议问题