Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pilih urutan antara dua angka di MySQL

Sesuatu seperti ini harus melakukannya:-

SELECT a.Name, GROUP_CONCAT(YEAR(DATE_ADD(a.start_date, INTERVAL b.aNum YEAR))) AS activity_years  
FROM person a
CROSS JOIN (SELECT a.i + b.i * 10 AS aNum FROM integers a, integers b) b
WHERE YEAR(DATE_ADD(a.start_date, INTERVAL b.aNum YEAR)) <= YEAR(a.end_date)
GROUP BY a.Name

Itu bergantung pada tabel bilangan bulat dengan kolom yang disebut i, dengan nilai 0 hingga 9. Ini menggabungkan ini dengan dirinya sendiri untuk mendapatkan rentang angka dari 0 hingga 99, jadi mengatasi rentang tanggal yang berjauhan.

Menghapus subpilihan untuk menggunakannya dalam tampilan

SELECT p.Name, GROUP_CONCAT(YEAR(DATE_ADD(p.start_date, INTERVAL (a.i + b.i * 10) YEAR))) AS activity_years  
FROM person p
CROSS JOIN integers a
CROSS JOIN integers b
WHERE YEAR(DATE_ADD(p.start_date, INTERVAL (a.i + b.i * 10) YEAR)) <= YEAR(p.end_date)
GROUP BY p.Name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Beralih di antara beberapa database di Rails tanpa memutus transaksi

  2. Bagaimana cara menggunakan koneksi MySQL yang sama untuk seluruh aplikasi Node.js saya?

  3. Group_Concat di Concat tidak berfungsi dengan nilai NULL

  4. MySQL - meledak/membagi input ke prosedur tersimpan

  5. MySql tidak berfungsi di Visual Studio 2012 :Jenis atau nama namespace 'MySql' tidak dapat ditemukan