Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -first_table- -second_table-
- |--var--|-value-| |--var--|-value-|
- | int | 1 | | float | 2.0 |
- | float | 1.0 | | char | b |
- | char | a | | bool | false |
- |-------|-------| |-------|-------|
- CREATE TABLE first_table ( var text, value text );
- CREATE TABLE second_table ( var text, value text );
- INSERT INTO first_table VALUES( 'int', '1' );
- INSERT INTO first_table VALUES( 'float', '1.0' );
- INSERT INTO first_table VALUES( 'char', 'a' );
- INSERT INTO second_table VALUES( 'float', '2.0' );
- INSERT INTO second_table VALUES( 'char', 'b' );
- INSERT INTO second_table VALUES( 'bool', 'false' );
- 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
- int|1
- float|1.0
- char|a
- float|2.0
- char|b
- bool|false
- int|1
- float|1.0
- char|a
- bool|N/A
- int|N/A
- float|2.0
- char|b
- bool|false
- select V.var,
- coalesce(case when num=1 then F.value else S.value end, 'N/A') value
- from
- (select var from first_table
- union
- select var from second_table
- ) V
- cross join (select 1 as num union select 2) N
- left join first_table F on N.num=1 and F.var=V.var
- left join second_table S on N.num=2 and S.var=V.var
- order by N.num, V.var desc
Add Comment
Please, Sign In to add comment