Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ekstrak kolom DB dan pisahkan untuk menemukan hasil tabel lainnya

Pemikiran yang rapi menurutku. Berikut adalah kueri untuk melakukan sesuatu seperti itu

SELECT 
t1.temp_id
   --  ... put your column list here from t2 and t3 here like t2.name
FROM table1 t1 
  LEFT JOIN table2 t2 
     ON CAST(LEFT(t1.temp_id,CHARINDEX(':',t1.temp_id)-1) AS INT)=t2.ID
  LEFT JOIN table3 t3 
     ON CAST(RIGHT(t1.temp_id,CHARINDEX(':',REVERSE(t1.temp_id))-1) AS INT)=t3.ID

Berikut skrip kecil untuk menguji ini juga

create table table1 (temp_id varchar(10))
insert into table1 values('1:1'),('21:2'),('1:22'),('1:'),(':2')

create table table2 (id int, value varchar(2))
insert into table2 values (1,'1'),(21,'21'),(1,'1')

create table table3 (id int, value varchar(2))
insert into table3 values (1,'1'),(2,'2'),(22,'22')

Keluaran PS:Perhatikan null penanganan di output




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih catatan terakhir dari tabel menggunakan grup menurut

  2. Buat pemicu yang memasukkan nilai ke dalam tabel baru saat kolom diperbarui

  3. SQL Server:kelompokkan secara berurutan

  4. Klausa WHERE pada tipe data Teks SQL Server

  5. Untuk mendapatkan tanggal dari datetime di sql