Guest User

Untitled

a guest
Oct 20th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. -first_table- -second_table-
  2. |--var--|-value-| |--var--|-value-|
  3. | int | 1 | | float | 2.0 |
  4. | float | 1.0 | | char | b |
  5. | char | a | | bool | false |
  6. |-------|-------| |-------|-------|
  7.  
  8. CREATE TABLE first_table ( var text, value text );
  9. CREATE TABLE second_table ( var text, value text );
  10.  
  11. INSERT INTO first_table VALUES( 'int', '1' );
  12. INSERT INTO first_table VALUES( 'float', '1.0' );
  13. INSERT INTO first_table VALUES( 'char', 'a' );
  14.  
  15. INSERT INTO second_table VALUES( 'float', '2.0' );
  16. INSERT INTO second_table VALUES( 'char', 'b' );
  17. INSERT INTO second_table VALUES( 'bool', 'false' );
  18.  
  19. echo "SELECT var,value FROM 'first_table' WHERE var='int' UNION ALL SELECT var,value FROM 'first_table' WHERE var='float' UNION ALL SELECT var,value FROM 'first_table' WHERE var='char' UNION ALL SELECT var,value FROM 'first_table' WHERE var='bool' UNION ALL SELECT var,value FROM 'second_table' WHERE var='int' UNION ALL SELECT var,value FROM 'second_table' WHERE var='float' UNION ALL SELECT var,value FROM 'second_table' WHERE var='char' UNION ALL SELECT var,value FROM 'second_table' WHERE var='bool' ;" | sqlite3 test.db
  20. int|1
  21. float|1.0
  22. char|a
  23. float|2.0
  24. char|b
  25. bool|false
  26.  
  27. int|1
  28. float|1.0
  29. char|a
  30. bool|N/A
  31. int|N/A
  32. float|2.0
  33. char|b
  34. bool|false
  35.  
  36. select V.var,
  37. coalesce(case when num=1 then F.value else S.value end, 'N/A') value
  38. from
  39. (select var from first_table
  40. union
  41. select var from second_table
  42. ) V
  43. cross join (select 1 as num union select 2) N
  44. left join first_table F on N.num=1 and F.var=V.var
  45. left join second_table S on N.num=2 and S.var=V.var
  46. order by N.num, V.var desc
Add Comment
Please, Sign In to add comment