Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 5th, 2012  |  syntax: None  |  size: 1.50 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. New select column with a counter that increase depending on conditions in SQL
  2. ID ||| COLUMN1 ||| COLUMN2 ||| COLUMN3 ||| COLUMN 4 |||NEW_COLUMN
  3. 1        null        null        null         12    
  4. 2         13         null        null         18           1
  5. 3        null        null        null         82            
  6. 4        null        null        null         81          
  7. 5        null        null        31           89           2
  8. 6        null        22          32           91           3
  9. 7        null        92          null         95           4
  10.        
  11. SELECT COLUMN1,COLUMN2,COLUMN3,COLUMN4, (SELECT .....) FROM ... WHERE ...
  12.        
  13. select t.*, (@row := case
  14.                      when column1 is not null or column2 is not null or column3 is not null
  15.                      then @row
  16.                      else null
  17.             end) as NEW_COLUMN,
  18.             (@row := case
  19.                      when column1 is not null or column2 is not null or column3 is not null
  20.                      then @row + 1
  21.                      else @row
  22.             end) as TEMP_COLUMN
  23. from your_table t, (select @row := 0) r
  24.        
  25. select a.ID,a.COLUMN1,a.COLUMN2,a.COLUMN3,a.COLUMN4,COUNT(b.ID) from
  26. (select * from <your_table> where coalesce(column1,column2,column3) is not null)a
  27. join
  28. (select * from <your_table> where coalesce(column1,column2,column3) is not null)b
  29. on a.ID>=b.ID
  30. group by a.ID,a.COLUMN1,a.COLUMN2,a.COLUMN3,a.COLUMN4
  31. union all
  32. select *,null from <your_table> where coalesce(column1,column2,column3) is null
  33. order by id