![](/img/trans.png)
[英]SQL QUERY: How to assign random different value of column in a table, to differents row in another table?
[英]How to assign one table column row to another table column value in SQL Server
我有兩個名為emp
和location
表,其中包含此示例數據:
create table emp
(
empid int,
ename varchar(50),
l1 int, l2 int, l3 int, l4 int
)
insert into emp values(1,'name1',1,3,2,5)
insert into emp values(2,'name2',100,6,8,1)
insert into emp values(3,'name3',11,23,22,52)
insert into emp values(4,'name4',31,31,22,15)
create table location
(
id int,
location_name varchar(100)
)
insert into location (id,location_name) values (1,' Mumbai ');
insert into location (id,location_name) values (2,' Delhi ');
insert into location (id,location_name) values (3,' Bangalore ');
insert into location (id,location_name) values (4,' Hyderabad ');
insert into location (id,location_name) values (5,' Ahmedabad ');
insert into location (id,location_name) values (6,' Chennai ');
insert into location (id,location_name) values (7,' Kolkata ');
insert into location (id,location_name) values (8,' Surat ');
insert into location (id,location_name) values (9,' Pune ');
insert into location (id,location_name) values (10,' Jaipur ');
insert into location (id,location_name) values (11,' Lucknow ');
insert into location (id,location_name) values (12,' Kanpur ');
insert into location (id,location_name) values (13,' Nagpur ');
insert into location (id,location_name) values (14,' Indore ');
insert into location (id,location_name) values (15,' Thane ');
insert into location (id,location_name) values (16,' Bhopal ');
insert into location (id,location_name) values (17,' Visakhapatnam[4] ');
insert into location (id,location_name) values (18,' Pimpri-Chinchwad ');
insert into location (id,location_name) values (19,' Patna ');
insert into location (id,location_name) values (20,' Vadodara ');
insert into location (id,location_name) values (21,' Ghaziabad ');
insert into location (id,location_name) values (22,' Ludhiana ');
insert into location (id,location_name) values (23,' Agra ');
insert into location (id,location_name) values (24,' Nashik ');
insert into location (id,location_name) values (25,' Ranchi ');
insert into location (id,location_name) values (26,' Faridabad ');
insert into location (id,location_name) values (27,' Meerut ');
insert into location (id,location_name) values (28,' Rajkot ');
insert into location (id,location_name) values (29,' Kalyan-Dombivli ');
insert into location (id,location_name) values (30,' Vasai-Virar ');
insert into location (id,location_name) values (31,' Varanasi ');
insert into location (id,location_name) values (32,' Srinagar ');
insert into location (id,location_name) values (33,' Aurangabad ');
insert into location (id,location_name) values (34,' Dhanbad ');
insert into location (id,location_name) values (35,' Amritsar ');
insert into location (id,location_name) values (36,' Navi Mumbai ');
insert into location (id,location_name) values (37,' Allahabad ');
insert into location (id,location_name) values (38,' Howrah ');
insert into location (id,location_name) values (39,' Gwalior ');
insert into location (id,location_name) values (40,' Jabalpur ');
insert into location (id,location_name) values (41,' Coimbatore ');
insert into location (id,location_name) values (42,' Vijayawada ');
insert into location (id,location_name) values (43,' Jodhpur ');
insert into location (id,location_name) values (44,' Madurai ');
insert into location (id,location_name) values (45,' Raipur ');
insert into location (id,location_name) values (46,' Chandigarh ');
insert into location (id,location_name) values (47,' Guwahati ');
insert into location (id,location_name) values (48,' Solapur ');
insert into location (id,location_name) values (49,' Hubli–Dharwad ');
insert into location (id,location_name) values (50,' Mysore[6][7][8] ');
insert into location (id,location_name) values (51,' Tiruchirappalli[9] ');
insert into location (id,location_name) values (52,' Bareilly ');
insert into location (id,location_name) values (53,' Aligarh ');
insert into location (id,location_name) values (54,' Tiruppur ');
insert into location (id,location_name) values (55,' Gurgaon ');
insert into location (id,location_name) values (56,' Moradabad ');
insert into location (id,location_name) values (57,' Jalandhar ');
insert into location (id,location_name) values (58,' Bhubaneswar ');
insert into location (id,location_name) values (59,' Salem ');
insert into location (id,location_name) values (60,' Warangal[10][11] ');
insert into location (id,location_name) values (61,' Mira-Bhayandar ');
insert into location (id,location_name) values (62,' Jalgaon ');
insert into location (id,location_name) values (63,' Kota[12] ');
insert into location (id,location_name) values (64,' Guntur[13] ');
insert into location (id,location_name) values (65,' Thiruvananthapuram ');
insert into location (id,location_name) values (66,' Bhiwandi ');
insert into location (id,location_name) values (67,' Saharanpur ');
insert into location (id,location_name) values (68,' Gorakhpur ');
insert into location (id,location_name) values (69,' Bikaner ');
insert into location (id,location_name) values (70,' Amravati ');
insert into location (id,location_name) values (71,' Noida ');
insert into location (id,location_name) values (72,' Jamshedpur ');
insert into location (id,location_name) values (73,' Bhilai ');
insert into location (id,location_name) values (74,' Cuttack ');
insert into location (id,location_name) values (75,' Firozabad ');
insert into location (id,location_name) values (76,' Kochi ');
insert into location (id,location_name) values (77,' Nellore[14][15] ');
insert into location (id,location_name) values (78,' Bhavnagar ');
insert into location (id,location_name) values (79,' Dehradun ');
insert into location (id,location_name) values (80,' Durgapur ');
insert into location (id,location_name) values (81,' Asansol ');
insert into location (id,location_name) values (82,' Rourkela ');
insert into location (id,location_name) values (83,' Nanded ');
insert into location (id,location_name) values (84,' Kolhapur ');
insert into location (id,location_name) values (85,' Ajmer ');
insert into location (id,location_name) values (86,' Akola ');
insert into location (id,location_name) values (87,' Gulbarga ');
insert into location (id,location_name) values (88,' Jamnagar ');
insert into location (id,location_name) values (89,' Ujjain ');
insert into location (id,location_name) values (90,' Loni ');
insert into location (id,location_name) values (91,' Siliguri ');
insert into location (id,location_name) values (92,' Jhansi ');
insert into location (id,location_name) values (93,' Ulhasnagar ');
insert into location (id,location_name) values (94,' Jammu[16] ');
insert into location (id,location_name) values (95,' Sangli-Miraj & Kupwad ');
insert into location (id,location_name) values (96,' Mangalore ');
insert into location (id,location_name) values (97,' Erode[17] ');
insert into location (id,location_name) values (98,' Belgaum ');
insert into location (id,location_name) values (99,' Ambattur ');
insert into location (id,location_name) values (100,' Tirunelveli ');
insert into location (id,location_name) values (101,' Malegaon ');
insert into location (id,location_name) values (102,' Gaya ');
insert into location (id,location_name) values (103,' Udaipur ');
insert into location (id,location_name) values (104,' Kakinada ');
insert into location (id,location_name) values (105,' Davanagere ');
insert into location (id,location_name) values (106,' Kozhikode ');
insert into location (id,location_name) values (107,' Maheshtala ');
insert into location (id,location_name) values (108,' Rajpur Sonarpur ');
insert into location (id,location_name) values (109,' Rajahmundry[18][19] ');
insert into location (id,location_name) values (110,' Bokaro ');
insert into location (id,location_name) values (111,' South Dumdum ');
insert into location (id,location_name) values (112,' Bellary ');
insert into location (id,location_name) values (113,' Patiala ');
insert into location (id,location_name) values (114,' Gopalpur ');
insert into location (id,location_name) values (115,' Agartala ');
insert into location (id,location_name) values (116,' Bhagalpur ');
insert into location (id,location_name) values (117,' Muzaffarnagar ');
insert into location (id,location_name) values (118,' Bhatpara ');
insert into location (id,location_name) values (119,' Panihati ');
insert into location (id,location_name) values (120,' Latur ');
insert into location (id,location_name) values (121,' Dhule ');
insert into location (id,location_name) values (122,' Tirupati[20] ');
insert into location (id,location_name) values (123,' Rohtak ');
insert into location (id,location_name) values (124,' Sagar ');
insert into location (id,location_name) values (125,' Korba ');
insert into location (id,location_name) values (126,' Bhilwara ');
insert into location (id,location_name) values (127,' Berhampur ');
insert into location (id,location_name) values (128,' Muzaffarpur ');
insert into location (id,location_name) values (129,' Ahmednagar ');
insert into location (id,location_name) values (130,' Mathura ');
insert into location (id,location_name) values (131,' Kollam ');
insert into location (id,location_name) values (132,' Avadi ');
insert into location (id,location_name) values (133,' Kadapa ');
insert into location (id,location_name) values (134,' Kamarhati ');
insert into location (id,location_name) values (135,' Sambalpur ');
insert into location (id,location_name) values (136,' Bilaspur ');
insert into location (id,location_name) values (137,' Shahjahanpur ');
insert into location (id,location_name) values (138,' Satara ');
insert into location (id,location_name) values (139,' Bijapur ');
insert into location (id,location_name) values (140,' Kurnool ');
insert into location (id,location_name) values (141,' Rampur ');
insert into location (id,location_name) values (142,' Shimoga ');
insert into location (id,location_name) values (143,' Chandrapur ');
insert into location (id,location_name) values (144,' Junagadh ');
insert into location (id,location_name) values (145,' Thrissur ');
insert into location (id,location_name) values (146,' Alwar ');
insert into location (id,location_name) values (147,' Bardhaman ');
insert into location (id,location_name) values (148,' Kulti ');
insert into location (id,location_name) values (149,' Nizamabad ');
insert into location (id,location_name) values (150,' Parbhani ');
insert into location (id,location_name) values (151,' Tumkur ');
insert into location (id,location_name) values (152,' Khammam ');
insert into location (id,location_name) values (153,' Ozhukarai ');
insert into location (id,location_name) values (154,' Bihar Sharif ');
insert into location (id,location_name) values (155,' Panipat ');
insert into location (id,location_name) values (156,' Darbhanga ');
insert into location (id,location_name) values (157,' Bally ');
insert into location (id,location_name) values (158,' Aizawl ');
insert into location (id,location_name) values (159,' Dewas ');
insert into location (id,location_name) values (160,' Ichalkaranji ');
insert into location (id,location_name) values (161,' Karnal ');
insert into location (id,location_name) values (162,' Bathinda ');
insert into location (id,location_name) values (163,' Jalna ');
insert into location (id,location_name) values (164,' Eluru[21] ');
insert into location (id,location_name) values (165,' Barasat ');
insert into location (id,location_name) values (166,' Kirari Suleman Nagar ');
insert into location (id,location_name) values (167,' Purnia[22] ');
insert into location (id,location_name) values (168,' Satna ');
insert into location (id,location_name) values (169,' Mau ');
insert into location (id,location_name) values (170,' Sonipat ');
insert into location (id,location_name) values (171,' Farrukhabad ');
insert into location (id,location_name) values (173,' Durg ');
insert into location (id,location_name) values (174,' Imphal ');
insert into location (id,location_name) values (175,' Ratlam ');
insert into location (id,location_name) values (176,' Hapur ');
insert into location (id,location_name) values (177,' Arrah ');
insert into location (id,location_name) values (178,' Anantapur ');
insert into location (id,location_name) values (179,' Karimnagar ');
insert into location (id,location_name) values (180,' Etawah ');
insert into location (id,location_name) values (181,' Ambarnath ');
insert into location (id,location_name) values (182,' North Dumdum ');
insert into location (id,location_name) values (183,' Bharatpur ');
insert into location (id,location_name) values (184,' Begusarai ');
insert into location (id,location_name) values (185,' New Delhi ');
insert into location (id,location_name) values (186,' Gandhidham ');
insert into location (id,location_name) values (187,' Baranagar ');
insert into location (id,location_name) values (188,' Tiruvottiyur ');
insert into location (id,location_name) values (189,' Pondicherry ');
insert into location (id,location_name) values (190,' Sikar ');
insert into location (id,location_name) values (191,' Thoothukudi ');
insert into location (id,location_name) values (192,' Rewa ');
insert into location (id,location_name) values (193,' Mirzapur ');
insert into location (id,location_name) values (194,' Raichur ');
insert into location (id,location_name) values (195,' Pali ');
insert into location (id,location_name) values (196,' Ramagundam[23] ');
insert into location (id,location_name) values (197,' Silchar ');
insert into location (id,location_name) values (198,' Haridwar ');
insert into location (id,location_name) values (199,' Vijayanagaram ');
insert into location (id,location_name) values (200,' Tenali ');
預期輸出
1 name1 Mumbai Bangalore Delhi Ahmedabad
2 name2 Tirunelveli Chennai Surat Mumbai
3 name3 Lucknow Agra Ludhiana Bareilly
4 name4 Varanasi Varanasi Ludhiana Thane
我正在嘗試只有一個加入的答案,請幫助我
使用多個連接:
select e.*,
l1.location_name, l2.location_name, l3.location_name, l4.location_name
from emp e left join
location l1
on e.l1 = l1.id left join
location l2
on e.l2 = l2.id left join
location l1
on e.l3 = l3.id left join
location l4
on e.l4 = l4.id;
我想你正在尋找這樣的東西
select e.empid, e.ename,
max(case when e.l1=l.id then l.location_name else null end) l1,
max(case when e.l2=l.id then l.location_name else null end) l2,
max(case when e.l3=l.id then l.location_name else null end) l3,
max(case when e.l4=l.id then l.location_name else null end) l4
from emp e
cross join [location] l
group by e.empid, e.ename;
輸出
empid ename l1 l2 l3 l4
1 name1 Mumbai Bangalore Delhi Ahmedabad
2 name2 Tirunelveli Chennai Surat Mumbai
3 name3 Lucknow Agra Ludhiana Bareilly
4 name4 Varanasi Varanasi Ludhiana Thane
使用條件聚合的另一個可能選項:
SELECT
e.empid, e.ename,
MAX(CASE WHEN e.l1 = l.id THEN l.location_name END) AS l1,
MAX(CASE WHEN e.l2 = l.id THEN l.location_name END) AS l2,
MAX(CASE WHEN e.l3 = l.id THEN l.location_name END) AS l3,
MAX(CASE WHEN e.l4 = l.id THEN l.location_name END) AS l4
FROM emp e
LEFT JOIN location l ON l.id IN (e.l1, e.l2, e.l3, e.l4)
GROUP BY e.empid, e.ename
結果:
empid ename l1 l2 l3 l4
1 name1 Mumbai Bangalore Delhi Ahmedabad
2 name2 Tirunelveli Chennai Surat Mumbai
3 name3 Lucknow Agra Ludhiana Bareilly
4 name4 Varanasi Varanasi Ludhiana Thane
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.