switch device

This commit is contained in:
ada-dmitry
2024-03-30 17:33:32 +03:00
parent 4623603411
commit 33a666eadb
5 changed files with 253 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
--2
SELECT *
FROM bd_departments
WHERE LENGTH(street) = POWER(SQRT(75 + LENGTH(street)), 2) / 4;
INSERT INTO bd_departments VALUES
(35,'meow', 407596, 'aaaaaaaaaaaaaaaaaaaaaaaaa', 2, 'MSK');
--4
CREATE TABLE employees_backup AS
SELECT *,
CASE
WHEN random() < 0.5 THEN 'Active'
ELSE 'Inactive'
END AS employee_status
FROM bd_employees;
SELECT * FROM employees_backup;
--5
SELECT e.employee_id, e.first_name, e.last_name, e.manager_id
FROM employees e
JOIN employees m ON e.manager_id = m.employee_id
WHERE LENGTH(m.last_name) > 6;
--3--
DO $$
DECLARE
BEGIN
RAISE NOTICE 'Шахматная доска:';
CALL chess('z9', 'C');
RAISE NOTICE 'Размещение фигуры А на клетке A5:';
CALL chess('a5', ' A ');
RAISE NOTICE 'Размещение фигуры У на клетке H4:';
CALL chess('h4', ' Y ');
END $$;
CREATE OR REPLACE PROCEDURE chess(pos varchar, bukva char) AS $$
DECLARE
board text;
queen_col integer;
queen_row integer;
BEGIN
queen_col := ascii(substring(pos from 1 for 1)) - 96;
queen_row := substring(pos from 2)::integer;
FOR i IN 1..8 LOOP
board := '';
FOR j IN 1..8 LOOP
IF i = queen_row AND j = queen_col THEN
board := board || bukva;
ELSE
IF (i + j) % 2 = 0 THEN
board := board || ' б ';
ELSE
board := board || ' ч ';
END IF;
END IF;
END LOOP;
RAISE NOTICE '%', board;
END LOOP;
END
$$ LANGUAGE plpgsql;
SELECT chess('c3');