File: convert.sql

package info (click to toggle)
postgresql-unit 7.10-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,540 kB
  • sloc: sql: 1,768; ansic: 1,334; lex: 358; yacc: 140; perl: 100; makefile: 40; sh: 25
file content (92 lines) | stat: -rw-r--r-- 1,118 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
-- length
WITH
  l(u) AS (VALUES
	('mm'),
	('m'),
	('km'),
	('in'),
	('ft'),
	('yd'),
	('mi'))
SELECT
  l1.u, l2.u, l1.u::unit @ l2.u
FROM
  l l1 CROSS JOIN l l2
\crosstabview

/* revert to pre-12 default */
SET extra_float_digits = 0;
WITH
  l(u) AS (VALUES
	('mm'),
	('m'),
	('km'),
	('in'),
	('ft'),
	('yd'),
	('mi'))
SELECT
  l1.u, l2.u, l1.u::unit @@ l2.u
FROM
  l l1 CROSS JOIN l l2
\crosstabview
RESET extra_float_digits;

-- area
WITH
  l(u) AS (VALUES
	('mm^2'),
	('m^2'),
	('km^2'),
	('in^2'),
	('ft^2'),
	('yd^2'),
	('mi^2'))
SELECT
  l1.u, l2.u, l1.u::unit @ l2.u
FROM
  l l1 CROSS JOIN l l2
\crosstabview

-- volume
WITH
  l(u) AS (VALUES
	('mm^3'),
	('l'),
	('m^3'),
	('in^3'),
	('ft^3'),
	('yd^3'))
SELECT
  l1.u, l2.u, l1.u::unit @ l2.u
FROM
  l l1 CROSS JOIN l l2
\crosstabview

-- weight
WITH
  l(u) AS (VALUES
	('g'),
	('kg'),
	('t'),
	('oz'),
	('lb'))
SELECT
  l1.u, l2.u, l1.u::unit @ l2.u
FROM
  l l1 CROSS JOIN l l2
\crosstabview

-- time
WITH
  l(u) AS (VALUES
	('s'),
	('min'),
	('hr'),
	('d'),
	('julianyear'))
SELECT
  l1.u, l2.u, l1.u::unit @ l2.u
FROM
  l l1 CROSS JOIN l l2
\crosstabview