SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share
Donate
Blog
Popular
Donate
A
A
A
Share
Blog
Popular
SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code.
You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.
SQL code:
Upload
Copy
Format
Clear
create table users( id number(10) primary key, C_FIO varchar2(100) ); insert into users(id, C_FIO) values(1, 'Иванов,Иван,Иванович'); insert into users(id, C_FIO) values(2, 'Ярышкин,Валентин,Константинович'); insert into users(id, C_FIO) values(3, 'Кутькина,Алена,Викторовна'); insert into users(id, C_FIO) values(4, 'Пендюр,Валентина,Степановна'); insert into users(id, C_FIO) values(5, 'Кучканова,Алефтина,Игоревна'); insert into users(id, C_FIO) values(6, 'Черных,Петр,Алексеевич'); insert into users(id, C_FIO) values(7, 'Моисеева,Лариса,Михайловна'); insert into users(id, C_FIO) values(8, 'Ласковых,Дмитрий,Викторович'); insert into users(id, C_FIO) values(9, 'Ярынова,Юлия,Павловна'); insert into users(id, C_FIO) values(10, 'Кулиш,Маргарита,Евгеньевна'); select*from users; create table address( id number(10) primary key, --идентификатор адреса прописки c_address varchar2(4000) ); insert into address(id, c_address) values (1, 'г.Сызрань, ул.Ильича , 5, 7, 303030'); insert into address(id, c_address) values (2, 'г.Сызрань, Свободы , 45, 17, 303450'); insert into address(id, c_address) values (3, 'г.Самара, ул.Владимирская , 6, 78, 123030'); insert into address(id, c_address) values (4, 'г.Самара, ул.Пензинская , 190, 76, 303190'); insert into address(id, c_address) values (5, 'г.Самара, ул.Гагарина , 15, 1, 303115'); insert into address(id, c_address) values (6, 'г.Самара, ул.Ленинградская , 4, 1, 303190'); insert into address(id, c_address) values (7, 'г.Самара, ул.Димитрова , 88, 99, 303199'); insert into address(id, c_address) values (8, 'г.Самара, ул.Мориса Тореза , 17, 56, 303117'); insert into address(id, c_address) values (9, 'г.Самара, ул.Высоцского , 3, 21, 303250'); insert into address(id, c_address) values (10, 'г.Самара, ул.Мяги , 13, 76, 303190'); select*from address; CREATE TABLE user_on_address ( ID NUMBER(10)PRIMARY KEY, c_user NUMBER NOT NULL REFERENCES USERS(ID), c_address NUMBER NOT NULL REFERENCES address(ID), c_begin DATE NOT NULL, c_end DATE ); INSERT into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (1, 1, 1, to_date('01-01-1978', 'dd-mm-yyyy'), null); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (2, 1, 2, to_date('12-01-2000', 'dd-mm-yyyy'), null); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (3, 3, 3, to_date('03-01-1980', 'dd-mm-yyyy'), null); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (4, 4, 4, to_date('08-12-1973', 'dd-mm-yyyy'), to_date('08-12-1999', 'dd-mm-yyyy')); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (5, 5, 5, to_date('05-01-2010', 'dd-mm-yyyy'), null); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (6, 6, 6, to_date('08-01-2013', 'dd-mm-yyyy'), to_date('17-06-2015', 'dd-mm-yyyy')); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (7, 7, 7, to_date('01-02-2011', 'dd-mm-yyyy'), null); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (8, 8, 8, to_date('14-01-2000', 'dd-mm-yyyy'), to_date('14-03-2005', 'dd-mm-yyyy')); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (9, 9, 9, to_date('15-01-2003', 'dd-mm-yyyy'), null); insert into user_on_address (ID, C_USER, C_ADDRESS, C_BEGIN, C_END) values (10, 9, 10, to_date('10-07-2005', 'dd-mm-yyyy'), null); select uoa.C_USER, uoa.C_BEGIN, uoa.C_END,1 AS p_mode from user_on_address uoa join users u1 on uoa.id = u1.id -- 1 условие p_mode =1 where uoa.C_END is null and uoa.C_BEGIN <=current_date and uoa.C_BEGIN = (select max(uo.C_BEGIN) from user_on_address uo join users u on uo.id =u.id where uo.c_user=uoa.c_user ) -- 2 условие UNION ALL (select uoa.C_USER,uoa.C_BEGIN, uoa.C_END,0 AS p_mode from user_on_address uoa join users u1 on uoa.id = u1.id) UNION ALL (select uoa.C_USER,uoa.C_BEGIN, uoa.C_END,-1 AS p_mode from user_on_address uoa join users u1 on uoa.id = u1.id and uoa.C_END is not null ) WITH a AS (SELECT u.id,u.c_fio,a.c_address,SUBSTR(a.c_address,-6)zipcode, ua.id id_address,ua.c_begin,ua.c_end FROM USERS u INNER JOIN user_on_address ua ON (u.id = ua.c_user) INNER JOIN address a ON (a.id=ua.c_address)) SELECT a3.c_fio,a3.c_address,a3.zipcode FROM (SELECT a.c_fio,a.c_address,a.zipcode,0 AS p_mode FROM a UNION ALL SELECT a.c_fio,a.c_address,a.zipcode,1 AS FROM a WHERE a.id_address IN (SELECT MAX(id_address) FROM a a2 WHERE a.id = a2.id AND a2.c_end IS NULL) UNION ALL SELECT a.c_fio,a.c_address,a.zipcode,-1 AS FROM a WHERE a.id_address IN (SELECT MAX(id_address) FROM a a2 WHERE a.id = a2.id AND a2.c_end IS NOT NULL))a3 WHERE a3.p_mode =&pmode
SQL
Server:
MariaDB 11.4
MariaDB 11.5
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
MySQL 5.7
MySQL 5.7 Sakila (ReadOnly)
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
SQLite 3
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 11
PostgreSQL 12
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear