diff --git a/DBG - get all tables size.sql b/DBG - get all tables size.sql new file mode 100644 index 0000000..03e4758 --- /dev/null +++ b/DBG - get all tables size.sql @@ -0,0 +1,27 @@ +SELECT t.name AS TableName, + s.name AS SchemaName, + p.rows, + SUM(a.total_pages) * 8 AS TotalSpaceKB, + CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB, + SUM(a.used_pages) * 8 AS UsedSpaceKB, + CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, + (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, + CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB +FROM sys.tables t + INNER JOIN sys.indexes i + ON t.object_id = i.object_id + INNER JOIN sys.partitions p + ON i.object_id = p.object_id + AND i.index_id = p.index_id + INNER JOIN sys.allocation_units a + ON p.partition_id = a.container_id + LEFT OUTER JOIN sys.schemas s + ON t.schema_id = s.schema_id +WHERE t.name NOT LIKE 'dt%' + AND t.is_ms_shipped = 0 + AND i.object_id > 255 +GROUP BY t.name, + s.name, + p.rows +ORDER BY p.rows DESC, + t.name; \ No newline at end of file diff --git a/EXPLOIT - check last jobs status.sql b/EXPLOIT - check last jobs status.sql index 2a219a6..7df38d4 100644 --- a/EXPLOIT - check last jobs status.sql +++ b/EXPLOIT - check last jobs status.sql @@ -34,13 +34,13 @@ BEGIN FROM [msdb].[dbo].[sysjobs] [s] WHERE [s].[name] IN ( 'zz_tsc OCTPDBA-440 supra' - --,'__D70010 - After APSSynchroLoad' - --,'_D73031 - SYNC - H Synchronize items and addresses - Central' - --,'_D73061 - ITEM - 000 - Manage data before H synchronization - Central' - --,'_D73071 - ITEM - Manage data after H synchronization - Central' - --,'_D73110 - SYNC - V Synchronization extraction - Central' - --,'D73130 - VESTA - SYNC - Interbase 2.0' - --,'__D03011 - After working hours - Central' + ,'__D70010 - After APSSynchroLoad' + ,'_D73031 - SYNC - H Synchronize items and addresses - Central' + ,'_D73061 - ITEM - 000 - Manage data before H synchronization - Central' + ,'_D73071 - ITEM - Manage data after H synchronization - Central' + ,'_D73110 - SYNC - V Synchronization extraction - Central' + ,'D73130 - VESTA - SYNC - Interbase 2.0' + ,'__D03011 - After working hours - Central' ); END ELSE diff --git a/EXPLOIT - drop all activepos subscriptions and rebuild.sql b/EXPLOIT - drop all activepos subscriptions and rebuild.sql new file mode 100644 index 0000000..ed05c9d --- /dev/null +++ b/EXPLOIT - drop all activepos subscriptions and rebuild.sql @@ -0,0 +1,22 @@ + +IF OBJECT_ID('tempdb..#pos')IS NOT NULL BEGIN; + DROP TABLE #pos; +END; + +SELECT pos.POS_hostname +INTO #pos +FROM [Arizona].[dbo].[Point_of_sale] [pos] +WHERE [pos].[POS_active]=1 +AND [pos].[POS_type] IN (1,2) +AND [pos].[POS_number] < 99 + +; + +DECLARE @qry NVARCHAR(MAX)=''; +SELECT @qry = @qry + 'exec ActivePos_read..sp_dropsubscription @publication = N''ActivePosTran'', @article = N''all'', @subscriber ='''+POS_hostname+'''; +' +FROM #pos; + +EXEC(@qry) +EXEC ActiveSystemServer.dbo.RepairReplication + diff --git a/OCTPDBA-380 - data masker/.vs/OCTPDBA-380 - data masker/v15/.ssms_suo b/OCTPDBA-380 - data masker/.vs/OCTPDBA-380 - data masker/v15/.ssms_suo new file mode 100644 index 0000000..56cb6be Binary files /dev/null and b/OCTPDBA-380 - data masker/.vs/OCTPDBA-380 - data masker/v15/.ssms_suo differ diff --git a/OCTPDBA-380 - data masker/OCTPDBA-380 - data masker.ssmssln b/OCTPDBA-380 - data masker/OCTPDBA-380 - data masker.ssmssln new file mode 100644 index 0000000..d4b0341 --- /dev/null +++ b/OCTPDBA-380 - data masker/OCTPDBA-380 - data masker.ssmssln @@ -0,0 +1,21 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# SQL Server Management Studio Solution File, Format Version 18.00 +VisualStudioVersion = 15.0.28307.421 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "OCTPDBA-380 - data masker", "OCTPDBA-380 - data masker.ssmssqlproj", "{065596B0-CD09-44E7-8CE6-1BF9C9299364}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Default|Default = Default|Default + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {065596B0-CD09-44E7-8CE6-1BF9C9299364}.Default|Default.ActiveCfg = Default + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0DC882E8-7E26-4802-B60A-4EC57D2966EA} + EndGlobalSection +EndGlobal diff --git a/OCTPDBA-380 - data masker/OCTPDBA-380 - data masker.ssmssqlproj b/OCTPDBA-380 - data masker/OCTPDBA-380 - data masker.ssmssqlproj new file mode 100644 index 0000000..866799e --- /dev/null +++ b/OCTPDBA-380 - data masker/OCTPDBA-380 - data masker.ssmssqlproj @@ -0,0 +1,82 @@ + + + + + + + 2023-01-31T13:25:51.2713026+01:00 + SQL + (local) + + Windows Authentication + master + 30 + 0 + NotSpecified + Microsoft SQL Server Management Studio - Query + + + + + + + + + + alter ref tbl.sql + + + + + + check after phcy.sql + + + + + + check after repli and sync.sql + + + + + + check before phcy.sql + + + + + + check logic.sql + + + + + + get ou from phcy.sql + + + + + + npa dataset.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + restore all.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + temp idx.sql + + + + + + + + \ No newline at end of file diff --git a/OCTPDBA-380 - data masker/alter ref tbl.sql b/OCTPDBA-380 - data masker/alter ref tbl.sql new file mode 100644 index 0000000..29f3888 --- /dev/null +++ b/OCTPDBA-380 - data masker/alter ref tbl.sql @@ -0,0 +1,17 @@ +USE ArizonaREP + +IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'address' AND TABLE_SCHEMA='dbo' AND COLUMN_NAME = 'phcy_ou_code') +BEGIN + ALTER TABLE dbo.address ADD phcy_ou_code VARCHAR(15) NULL; +END + +UPDATE a SET phcy_ou_code = ou.OU_code +FROM dbo.Address a + JOIN [dbo].[Address_OU_link] l ON l.AOUL_address = a.Address_GUID + JOIN dbo.Organizational_unit ou ON ou.Organizational_unit_GUID = COALESCE(a.AD_update_OU, a.AD_creation_OU) +WHERE a.phcy_ou_code IS NULL + +IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'address' AND TABLE_SCHEMA='dbo' AND COLUMN_NAME = 'phcy_ou_code') +BEGIN + ALTER TABLE dbo.address DROP COLUMN phcy_ou_code; +END diff --git a/OCTPDBA-380 - data masker/check after phcy.sql b/OCTPDBA-380 - data masker/check after phcy.sql new file mode 100644 index 0000000..7c42c6b --- /dev/null +++ b/OCTPDBA-380 - data masker/check after phcy.sql @@ -0,0 +1,35 @@ +SELECT TOP 100 + dm1.Address_ID + ,dm1.AD_first_name + ,dm1.AD_last_name + ,dm1.AD_middle_name + ,dm1.AD_name + --,LEFT(SUBSTRING(ad_name, 0, CHARINDEX(' ', AD_name, 0)), 30) AS first + --,UPPER(LEFT(SUBSTRING(ad_name, CHARINDEX(' ', AD_name, 0), 99), 30)) AS last + ,dm1.AD_address_1 + ,dm1.AD_address_2 + ,dm1.AD_address_3 + ,dm1.AD_zip_code + ,dm1.AD_city + +FROM dbo.Address dm1 + --JOIN dbo.Customer c ON c.CUST_add_turnover_to = dm1.address_id + --or c.cust_address = dm1.address_id + --or c.cust_bill_to = dm1.address_id + --or c.cust_send_bill_to = dm1.address_id + --or c.cust_ship_to = dm1.address_id +WHERE EXISTS( + SELECT 1 + FROM dbo.customer c + WHERE c.CUST_add_turnover_to = dm1.address_id + OR c.cust_address = dm1.address_id + or c.cust_bill_to = dm1.address_id + or c.cust_send_bill_to = dm1.address_id + or c.cust_ship_to = dm1.address_id +) +AND dm1.AD_sex <> 4 + + +SELECT * +FROM ArizonaREP.dbo.Address a +WHERE a. \ No newline at end of file diff --git a/OCTPDBA-380 - data masker/check after repli and sync.sql b/OCTPDBA-380 - data masker/check after repli and sync.sql new file mode 100644 index 0000000..ca7aa38 --- /dev/null +++ b/OCTPDBA-380 - data masker/check after repli and sync.sql @@ -0,0 +1,63 @@ +USE master +GO + + +SELECT + 'phcy' AS src + ,dm1.Address_ID + ,dm1.AD_first_name + ,dm1.AD_last_name + ,dm1.AD_middle_name + ,dm1.AD_name + ,dm1.AD_address_1 + ,dm1.AD_address_2 + ,dm1.AD_address_3 + ,dm1.AD_zip_code + ,dm1.AD_city + ,dm1.AD_sex + +FROM Arizona.dbo.Address dm1 +WHERE EXISTS( + SELECT 1 + FROM Arizona.dbo.customer c + WHERE c.CUST_add_turnover_to = dm1.address_id + OR c.cust_address = dm1.address_id + or c.cust_bill_to = dm1.address_id + or c.cust_send_bill_to = dm1.address_id + or c.cust_ship_to = dm1.address_id +) +AND dm1.AD_sex <> 4 +AND dm1.Address_ID = 1500038158 +; + + +SELECT + 'ref' AS src + ,dm1.Address_GUID + ,dm1.AD_first_name + ,dm1.AD_last_name + ,dm1.AD_middle_name + ,dm1.AD_name + ,dm1.AD_address_1 + ,dm1.AD_address_2 + ,dm1.AD_address_3 + ,dm1.AD_zip_code + ,dm1.AD_city + ,dm1.AD_sex + +FROM ArizonaRep.dbo.Address dm1 + JOIN ArizonaRep.[dbo].[Address_OU_link] l ON l.AOUL_address = dm1.Address_GUID + JOIN ArizonaRep.[dbo].[Organizational_unit] ou ON ou.Organizational_unit_GUID = l.AOUL_OU +WHERE 1=1 +--AND EXISTS( +-- SELECT 1 +-- FROM ArizonaRep.[dbo].[Organizational_unit] ou +-- JOIN ArizonaRep.[dbo].[Address_OU_link] l ON l.AOUL_OU = ou.Organizational_unit_GUID +-- WHERE ou.OU_code='705' +-- AND l.AOUL_source_key = dm1.Address_GUID +--) +AND dm1.AD_sex <> 4 +AND ou.OU_code='705' +AND l.AOUL_source_key = 1500038158 +; + diff --git a/OCTPDBA-380 - data masker/check before phcy.sql b/OCTPDBA-380 - data masker/check before phcy.sql new file mode 100644 index 0000000..e0e2815 --- /dev/null +++ b/OCTPDBA-380 - data masker/check before phcy.sql @@ -0,0 +1,33 @@ +USE Arizona + +SELECT + dm1.AD_first_name + ,dm1.AD_last_name + ,dm1.AD_middle_name + ,dm1.AD_name + ,dm1.AD_address_1 + ,dm1.AD_address_2 + ,dm1.AD_address_3 +FROM dbo.Address dm1 + --JOIN dbo.Customer c ON c.CUST_add_turnover_to = dm1.address_id + --or c.cust_address = dm1.address_id + --or c.cust_bill_to = dm1.address_id + --or c.cust_send_bill_to = dm1.address_id + --or c.cust_ship_to = dm1.address_id +where exists( + select 1 + from dbo.customer c + where c.CUST_add_turnover_to = dm1.address_id + or c.cust_address = dm1.address_id + or c.cust_bill_to = dm1.address_id + or c.cust_send_bill_to = dm1.address_id + or c.cust_ship_to = dm1.address_id +) + +RETURN + + +SELECT * +FROM dbo.Address_category ac + JOIN dbo.Address_category_text act ON act.ADCT_address_category = ac.Address_category_ID +WHERE act.ADCT_language = 1 --fr diff --git a/OCTPDBA-380 - data masker/check logic.sql b/OCTPDBA-380 - data masker/check logic.sql new file mode 100644 index 0000000..aef7a00 --- /dev/null +++ b/OCTPDBA-380 - data masker/check logic.sql @@ -0,0 +1,32 @@ +SELECT TOP 100 + a.Address_GUID + , a.ad_name + , a.AD_creation_OU + , a.AD_update_OU + ,a.* +FROM dbo.Address a +WHERE 1=1 +AND EXISTS( + SELECT 1 + FROM [dbo].[Organizational_unit] ou + JOIN [dbo].[Address_OU_link] l ON l.AOUL_OU = ou.Organizational_unit_GUID + WHERE ou.OU_code='705' + AND l.AOUL_address = a.Address_GUID +) +--AND ou.OU_code='705' +--AND a.Address_GUID='9B30783A-FDD8-4B77-9B79-D5E70E327F56' +ORDER BY a.AD_name + + +RETURN + +SELECT + a.AD_creation_OU + ,* +FROM dbo.Address a + JOIN [dbo].[Address_OU_link] l ON l.AOUL_address = a.Address_GUID +WHERE l.AOUL_address='9B261B2E-6227-4540-BC42-9C509D219AD8' + +SELECT * +FROM dbo.Organizational_unit +WHERE Organizational_unit_GUID='BD710DD2-DC90-4DF0-91E6-84DBE5572469' \ No newline at end of file diff --git a/OCTPDBA-380 - data masker/get ou from phcy.sql b/OCTPDBA-380 - data masker/get ou from phcy.sql new file mode 100644 index 0000000..883e311 --- /dev/null +++ b/OCTPDBA-380 - data masker/get ou from phcy.sql @@ -0,0 +1,22 @@ +SELECT + ou.OU_code, + ou.Organizational_unit_ID, + ou.OU_short_name, + ou.OU_pharmacy_code, + ou.OU_subsidiary +FROM [Arizona].[dbo].[Bmc_application_key] [bak] WITH (NOLOCK) + JOIN [Arizona].[dbo].[Bmc_application_default] [bad] WITH (NOLOCK) + ON [bad].[BAPD_bmc_application_key] = [bak].[Bmc_application_key_ID] + JOIN [Arizona].[dbo].[Organizational_unit] OUA WITH (NOLOCK) + ON OUA.[Organizational_unit_ID] = [bad].[BAPD_value] + JOIN [Arizona].[dbo].[Organizational_unit] [ou] WITH(NOLOCK) + ON [ou].[OU_code] = [OUA].[OU_code] +WHERE [bak].[BAPK_key] = 'cvCurrentOrganizationalUnit' + +SELECT TOP 100 l.AOUL_source_key, ou.* +FROM ArizonaREP.dbo.Address a + JOIN ArizonaREP.[dbo].[Address_OU_link] l ON l.AOUL_address = a.Address_GUID + JOIN ArizonaREP.dbo.Organizational_unit ou ON ou.Organizational_unit_GUID = a.AD_creation_OU + OR ou.Organizational_unit_GUID = a.AD_update_OU +WHERE AD_sex <> 4 +AND ad_name ='WINKELMANN Martin' diff --git a/OCTPDBA-380 - data masker/npa dataset.sql b/OCTPDBA-380 - data masker/npa dataset.sql new file mode 100644 index 0000000..19ad6fe --- /dev/null +++ b/OCTPDBA-380 - data masker/npa dataset.sql @@ -0,0 +1,4436 @@ +--USE sandbox + +SELECT * +FROM dbo.npa + +RETURN +ALTER TABLE npa DROP COLUMN loc1 +EXEC sp_rename 'npa.loc2','city' + +--CREATE TABLE npa ( +--id INT IDENTITY +--,npa INT NOT NULL +--,loc1 VARCHAR(200) NOT NULL +--,city VARCHAR(200)NOT NULL +--) + +--INSERT INTO dbo.np (npa, +-- loc1, +-- loc2) +--SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne 2','Lausanne 2' +--UNION SELECT 1000,'Lausanne 3','Lausanne 3' +--UNION SELECT 1000,'Lausanne Ouchy','Lausanne Ouchy' +--UNION SELECT 1000,'Lausanne St-Paul','Lausanne St-Paul' +--UNION SELECT 1000,'Lausanne Bellevaux','Lausanne Bellevaux' +--UNION SELECT 1000,'Lausanne 12','Lausanne 12' +--UNION SELECT 1000,'Lausanne 14','Lausanne 14' +--UNION SELECT 1000,'Lausanne 16','Lausanne 16' +--UNION SELECT 1000,'Lausanne 17','Lausanne 17' +--UNION SELECT 1000,'Lausanne 19','Lausanne 19' +--UNION SELECT 1000,'Lausanne Grangette','Lausanne Grangette' +--UNION SELECT 1000,'Lausanne 22','Lausanne 22' +--UNION SELECT 1000,'Lausanne Bourdon.','Lausanne Bourdonnette' +--UNION SELECT 1000,'Lausanne 24','Lausanne 24 Vennes' +--UNION SELECT 1000,'Lausanne 25','Lausanne 25' +--UNION SELECT 1000,'Lausanne 26','Lausanne 26' +--UNION SELECT 1000,'Lausanne 27','Lausanne 27' +--UNION SELECT 1000,'Lausanne Dist','Lausanne Distribution' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1008,'Prilly','Prilly' +--UNION SELECT 1009,'Pully','Pully' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne Adm cant','Lausanne Adm cant VD' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1000,'Lausanne','Lausanne' +--UNION SELECT 1020,'Renens VD','Renens VD' +--UNION SELECT 1020,'Renens VD 1','Renens VD 1' +--UNION SELECT 1020,'Renens VD Village','Renens VD Village' +--UNION SELECT 1023,'Crissier','Crissier' +--UNION SELECT 1024,'Ecublens VD','Ecublens VD' +--UNION SELECT 1025,'St-Sulpice VD','St-Sulpice VD' +--UNION SELECT 1026,'Echandens-Denges','Echandens-Denges' +--UNION SELECT 1027,'Lonay','Lonay' +--UNION SELECT 1030,'Bussigny','Bussigny' +--UNION SELECT 1032,'Romanel-s-Lausanne','Romanel-sur-Lausanne' +--UNION SELECT 1033,'Cheseaux-Lausanne','Cheseaux-sur-Lausanne' +--UNION SELECT 1038,'Bercher','Bercher' +--UNION SELECT 1040,'Echallens','Echallens' +--UNION SELECT 1377,'Oulens-Echallens','Oulens-sous-Echallens' +--UNION SELECT 1042,'Bettens','Bettens' +--UNION SELECT 1040,'Villars-le-Terroir','Villars-le-Terroir' +--UNION SELECT 1417,'Epautheyres','Epautheyres' +--UNION SELECT 1041,'Dommartin','Dommartin' +--UNION SELECT 1063,'Peyres-Possens','Peyres-Possens' +--UNION SELECT 1063,'Boulens','Boulens' +--UNION SELECT 1041,'Poliez-le-Grand','Poliez-le-Grand' +--UNION SELECT 1041,'Poliez-Pittet','Poliez-Pittet' +--UNION SELECT 1041,'Bottens','Bottens' +--UNION SELECT 1053,'Bretigny-Morrens','Bretigny-sur-Morrens' +--UNION SELECT 1034,'Boussens','Boussens' +--UNION SELECT 1035,'Bournens','Bournens' +--UNION SELECT 1036,'Sullens','Sullens' +--UNION SELECT 1042,'Assens','Assens' +--UNION SELECT 1043,'Sugnens','Sugnens' +--UNION SELECT 1044,'Fey','Fey' +--UNION SELECT 1045,'Ogens','Ogens' +--UNION SELECT 1407,'Bioley-Magnoux','Bioley-Magnoux' +--UNION SELECT 1042,'Bioley-Orjulaz','Bioley-Orjulaz' +--UNION SELECT 1052,'Mont-sur-Lausanne','Le Mont-sur-Lausanne' +--UNION SELECT 1053,'Cugy VD','Cugy VD' +--UNION SELECT 1054,'Morrens VD','Morrens VD' +--UNION SELECT 1055,'Froideville','Froideville' +--UNION SELECT 1410,'Thierrens','Thierrens' +--UNION SELECT 1066,'Epalinges','Epalinges' +--UNION SELECT 1073,'Savigny','Savigny' +--UNION SELECT 1092,'Belmont-Lausanne','Belmont-sur-Lausanne' +--UNION SELECT 1093,'La Conversion','La Conversion' +--UNION SELECT 1094,'Paudex','Paudex' +--UNION SELECT 1095,'Lutry','Lutry' +--UNION SELECT 1096,'Cully','Cully' +--UNION SELECT 1097,'Riex','Riex' +--UNION SELECT 1098,'Epesses','Epesses' +--UNION SELECT 1058,'Villars-Tiercelin','Villars-Tiercelin' +--UNION SELECT 1059,'Peney-le-Jorat','Peney-le-Jorat' +--UNION SELECT 1061,'Villars-Mendraz','Villars-Mendraz' +--UNION SELECT 1062,'Sottens','Sottens' +--UNION SELECT 1063,'Chapelle-s-Moudon','Chapelle-sur-Moudon' +--UNION SELECT 1410,'St-Cierges','St-Cierges' +--UNION SELECT 1073,'Mollie-Margot','Mollie-Margot' +--UNION SELECT 1080,'Les Cullayes','Les Cullayes' +--UNION SELECT 1081,'Montpreveyres','Montpreveyres' +--UNION SELECT 1082,'Corcelles-le-Jorat','Corcelles-le-Jorat' +--UNION SELECT 1088,'Ropraz','Ropraz' +--UNION SELECT 1084,'Carrouge VD','Carrouge VD' +--UNION SELECT 1085,'Vulliens','Vulliens' +--UNION SELECT 1509,'Vucherens','Vucherens' +--UNION SELECT 1510,'Syens','Syens' +--UNION SELECT 1076,'Ferlens VD','Ferlens VD' +--UNION SELECT 1077,'Servion','Servion' +--UNION SELECT 1078,'Essertes','Essertes' +--UNION SELECT 1673,'Auboranges','Auboranges' +--UNION SELECT 1110,'Morges','Morges' +--UNION SELECT 1110,'Morges 1','Morges 1' +--UNION SELECT 1110,'Morges 2','Morges 2' +--UNION SELECT 1112,'Echichens','Echichens' +--UNION SELECT 1167,'Lussy-sur-Morges','Lussy-sur-Morges' +--UNION SELECT 1132,'Lully VD','Lully VD' +--UNION SELECT 1131,'Tolochenaz','Tolochenaz' +--UNION SELECT 1125,'Monnaz','Monnaz' +--UNION SELECT 1126,'Vaux-sur-Morges','Vaux-sur-Morges' +--UNION SELECT 1127,'Clarmont','Clarmont' +--UNION SELECT 1128,'Reverolle','Reverolle' +--UNION SELECT 1113,'St-Saphorin-Morges','St-Saphorin-sur-Morges' +--UNION SELECT 1114,'Colombier VD','Colombier VD' +--UNION SELECT 1115,'Vullierens','Vullierens' +--UNION SELECT 1116,'Cottens VD','Cottens VD' +--UNION SELECT 1117,'Grancy','Grancy' +--UNION SELECT 1304,'Senarclens','Senarclens' +--UNION SELECT 1121,'Bremblens','Bremblens' +--UNION SELECT 1122,'Romanel-sur-Morges','Romanel-sur-Morges' +--UNION SELECT 1123,'Aclens','Aclens' +--UNION SELECT 1124,'Gollion','Gollion' +--UNION SELECT 1135,'Denens','Denens' +--UNION SELECT 1136,'Bussy-Chardonney','Bussy-Chardonney' +--UNION SELECT 1169,'Yens','Yens' +--UNION SELECT 1168,'Villars-sous-Yens','Villars-sous-Yens' +--UNION SELECT 1144,'Ballens','Ballens' +--UNION SELECT 1149,'Berolle','Berolle' +--UNION SELECT 1146,'Mollens VD','Mollens VD' +--UNION SELECT 1147,'Montricher','Montricher' +--UNION SELECT 1142,'Pampigny','Pampigny' +--UNION SELECT 1143,'Apples','Apples' +--UNION SELECT 1148,'L''Isle','L''Isle' +--UNION SELECT 1162,'St-Prex','St-Prex' +--UNION SELECT 1163,'Etoy','Etoy' +--UNION SELECT 1164,'Buchillon','Buchillon' +--UNION SELECT 1165,'Allaman','Allaman' +--UNION SELECT 1166,'Perroy','Perroy' +--UNION SELECT 1170,'Aubonne','Aubonne' +--UNION SELECT 1172,'Bougy-Villars','Bougy-Villars' +--UNION SELECT 1174,'Montherod','Montherod' +--UNION SELECT 1175,'Lavigny','Lavigny' +--UNION SELECT 1176,'St-Livres','St-Livres' +--UNION SELECT 1180,'Rolle','Rolle' +--UNION SELECT 1182,'Gilly','Gilly' +--UNION SELECT 1183,'Bursins','Bursins' +--UNION SELECT 1184,'Vinzel','Vinzel' +--UNION SELECT 1184,'Luins','Luins' +--UNION SELECT 1185,'Mont-sur-Rolle','Mont-sur-Rolle' +--UNION SELECT 1186,'Essertines-Rolle','Essertines-sur-Rolle' +--UNION SELECT 1187,'St-Oyens','St-Oyens' +--UNION SELECT 1189,'Saubraz','Saubraz' +--UNION SELECT 1188,'Gimel','Gimel' +--UNION SELECT 1196,'Gland','Gland' +--UNION SELECT 1197,'Prangins','Prangins' +--UNION SELECT 1212,'Grand-Lancy','Grand-Lancy' +--UNION SELECT 1212,'Grand-Lancy 1','Grand-Lancy 1' +--UNION SELECT 1213,'Petit-Lancy','Petit-Lancy' +--UNION SELECT 1213,'Petit-Lancy 1','Petit-Lancy 1' +--UNION SELECT 1213,'Petit-Lancy 2','Petit-Lancy 2' +--UNION SELECT 1213,'Onex','Onex' +--UNION SELECT 1214,'Vernier','Vernier' +--UNION SELECT 1216,'Cointrin','Cointrin' +--UNION SELECT 1217,'Meyrin','Meyrin' +--UNION SELECT 1217,'Meyrin 1','Meyrin 1' +--UNION SELECT 1217,'Meyrin 2','Meyrin 2' +--UNION SELECT 1218,'Le Grand-Saconnex','Le Grand-Saconnex' +--UNION SELECT 1219,'Le Lignon','Le Lignon' +--UNION SELECT 1220,'Les Avanchets','Les Avanchets' +--UNION SELECT 1223,'Cologny','Cologny' +--UNION SELECT 1227,'Carouge GE','Carouge GE' +--UNION SELECT 1227,'Les Acacias','Les Acacias' +--UNION SELECT 1228,'Plan-les-Ouates','Plan-les-Ouates' +--UNION SELECT 1231,'Conches','Conches' +--UNION SELECT 1232,'Confignon','Confignon' +--UNION SELECT 1233,'Bernex','Bernex' +--UNION SELECT 1234,'Vessy','Vessy' +--UNION SELECT 1236,'Cartigny','Cartigny' +--UNION SELECT 1237,'Avully','Avully' +--UNION SELECT 1239,'Collex','Collex' +--UNION SELECT 1241,'Puplinge','Puplinge' +--UNION SELECT 1242,'Satigny','Satigny' +--UNION SELECT 1243,'Presinge','Presinge' +--UNION SELECT 1244,'Choulex','Choulex' +--UNION SELECT 1245,'Collonge-Bellerive','Collonge-Bellerive' +--UNION SELECT 1246,'Corsier GE','Corsier GE' +--UNION SELECT 1248,'Hermance','Hermance' +--UNION SELECT 1251,'Gy','Gy' +--UNION SELECT 1252,'Meinier','Meinier' +--UNION SELECT 1253,'Vandoeuvres','Vandoeuvres' +--UNION SELECT 1254,'Jussy','Jussy' +--UNION SELECT 1255,'Veyrier','Veyrier' +--UNION SELECT 1256,'Troinex','Troinex' +--UNION SELECT 1257,'La Croix-de-Rozon','La Croix-de-Rozon' +--UNION SELECT 1258,'Perly','Perly' +--UNION SELECT 1260,'Nyon','Nyon' +--UNION SELECT 1260,'Nyon 1 Dist','Nyon 1 Distribution' +--UNION SELECT 1277,'Borex','Borex' +--UNION SELECT 1278,'La Rippe','La Rippe' +--UNION SELECT 1279,'Chavannes-de-Bogis','Chavannes-de-Bogis' +--UNION SELECT 1274,'Grens','Grens' +--UNION SELECT 1276,'Gingins','Gingins' +--UNION SELECT 1271,'Givrins','Givrins' +--UNION SELECT 1272,'Genolier','Genolier' +--UNION SELECT 1273,'Arzier-Le Muids','Arzier-Le Muids' +--UNION SELECT 1268,'Burtigny','Burtigny' +--UNION SELECT 1261,'Marchissy','Marchissy' +--UNION SELECT 1261,'Le Vaud','Le Vaud' +--UNION SELECT 1269,'Bassins','Bassins' +--UNION SELECT 1261,'Longirod','Longirod' +--UNION SELECT 1188,'St-George','St-George' +--UNION SELECT 1262,'Eysins','Eysins' +--UNION SELECT 1263,'Crassier','Crassier' +--UNION SELECT 1264,'St-Cergue','St-Cergue' +--UNION SELECT 1265,'La Cure','La Cure' +--UNION SELECT 1266,'Duillier','Duillier' +--UNION SELECT 1268,'Begnins','Begnins' +--UNION SELECT 1281,'Russin','Russin' +--UNION SELECT 1283,'Dardagny','Dardagny' +--UNION SELECT 1283,'La Plaine','La Plaine' +--UNION SELECT 1284,'Chancy','Chancy' +--UNION SELECT 1285,'Athenaz Avusy','Athenaz Avusy' +--UNION SELECT 1286,'Soral','Soral' +--UNION SELECT 1287,'Laconnex','Laconnex' +--UNION SELECT 1288,'Aire-la-Ville','Aire-la-Ville' +--UNION SELECT 1290,'Versoix','Versoix' +--UNION SELECT 1291,'Commugny','Commugny' +--UNION SELECT 1293,'Bellevue','Bellevue' +--UNION SELECT 1294,'Genthod','Genthod' +--UNION SELECT 1296,'Coppet','Coppet' +--UNION SELECT 1297,'Founex','Founex' +--UNION SELECT 1299,'Crans VD','Crans VD' +--UNION SELECT 1302,'Vufflens-la-Ville','Vufflens-la-Ville' +--UNION SELECT 1304,'Cossonay-Ville','Cossonay-Ville' +--UNION SELECT 1304,'Dizy','Dizy' +--UNION SELECT 1307,'Lussery-Villars','Lussery-Villars' +--UNION SELECT 1305,'Penthalaz','Penthalaz' +--UNION SELECT 1315,'La Sarraz','La Sarraz' +--UNION SELECT 1317,'Orny','Orny' +--UNION SELECT 1316,'Chevilly','Chevilly' +--UNION SELECT 1337,'Vallorbe','Vallorbe' +--UNION SELECT 1338,'Ballaigues','Ballaigues' +--UNION SELECT 1341,'L''Orient','L''Orient' +--UNION SELECT 1346,'Les Bioux','Les Bioux' +--UNION SELECT 1344,'L''Abbaye','L''Abbaye' +--UNION SELECT 1342,'Le Pont','Le Pont' +--UNION SELECT 1345,'Le Lieu','Le Lieu' +--UNION SELECT 1347,'Le Sentier','Le Sentier' +--UNION SELECT 1348,'Le Brassus','Le Brassus' +--UNION SELECT 1306,'Daillens','Daillens' +--UNION SELECT 1303,'Penthaz','Penthaz' +--UNION SELECT 1308,'La Chaux-Cossonay','La Chaux Cossonay' +--UNION SELECT 1148,'Cuarnens','Cuarnens' +--UNION SELECT 1313,'Ferreyres','Ferreyres' +--UNION SELECT 1148,'Moiry VD','Moiry VD' +--UNION SELECT 1321,'Arnex-sur-Orbe','Arnex-sur-Orbe' +--UNION SELECT 1318,'Pompaples','Pompaples' +--UNION SELECT 1322,'Croy','Croy' +--UNION SELECT 1324,'Premier','Premier' +--UNION SELECT 1325,'Vaulion','Vaulion' +--UNION SELECT 1326,'Juriens','Juriens' +--UNION SELECT 1148,'La Praz','La Praz' +--UNION SELECT 1148,'Mont-la-Ville','Mont-la-Ville' +--UNION SELECT 1350,'Orbe','Orbe' +--UNION SELECT 1352,'Agiez','Agiez' +--UNION SELECT 1353,'Bofflens','Bofflens' +--UNION SELECT 1354,'Montcherand','Montcherand' +--UNION SELECT 1355,'L''Abergement','L''Abergement' +--UNION SELECT 1357,'Lignerolle','Lignerolle' +--UNION SELECT 1358,'Valeyres-Rances','Valeyres-sous-Rances' +--UNION SELECT 1439,'Rances','Rances' +--UNION SELECT 1373,'Chavornay','Chavornay' +--UNION SELECT 1372,'Bavois','Bavois' +--UNION SELECT 1374,'Corcelles-Chavorn','Corcelles-sur-Chavornay' +--UNION SELECT 1376,'Goumoens-la-Ville','Goumoens-la-Ville' +--UNION SELECT 1400,'Yverdon-les-Bains','Yverdon-les-Bains' +--UNION SELECT 1400,'Yverdon 1','Yverdon-les-Bains 1' +--UNION SELECT 1400,'Yverdon 2','Yverdon 2' +--UNION SELECT 1400,'Yverdon-les-Bains','Yverdon-les-Bains' +--UNION SELECT 1417,'Essertines-Yverdon','Essertines-sur-Yverdon' +--UNION SELECT 1416,'Pailly','Pailly' +--UNION SELECT 1418,'Vuarrens','Vuarrens' +--UNION SELECT 1420,'Fiez','Fiez' +--UNION SELECT 1421,'Fontaines-Grandson','Fontaines-sur-Grandson' +--UNION SELECT 1423,'Villars-Burquin','Villars-Burquin' +--UNION SELECT 1453,'Mauborget','Mauborget' +--UNION SELECT 1429,'Giez','Giez' +--UNION SELECT 1430,'Orges','Orges' +--UNION SELECT 1431,'Vugelles-La Mothe','Vugelles-La Mothe' +--UNION SELECT 1405,'Pomy','Pomy' +--UNION SELECT 1406,'Cronay','Cronay' +--UNION SELECT 1407,'Donneloye','Donneloye' +--UNION SELECT 1408,'Prahins','Prahins' +--UNION SELECT 1412,'Valeyres-Ursins','Valeyres-sous-Ursins' +--UNION SELECT 1413,'Orzens','Orzens' +--UNION SELECT 1046,'Rueyres','Rueyres' +--UNION SELECT 1404,'Cuarny','Cuarny' +--UNION SELECT 1427,'Bonvillars','Bonvillars' +--UNION SELECT 1424,'Champagne','Champagne' +--UNION SELECT 1431,'Novalles','Novalles' +--UNION SELECT 1423,'Fontanezier','Fontanezier' +--UNION SELECT 1415,'Molondin','Molondin' +--UNION SELECT 1422,'Grandson','Grandson' +--UNION SELECT 1425,'Onnens VD','Onnens VD' +--UNION SELECT 1426,'Concise','Concise' +--UNION SELECT 1432,'Belmont-Yverdon','Belmont-sur-Yverdon' +--UNION SELECT 1433,'Suchy','Suchy' +--UNION SELECT 1434,'Ependes VD','Ependes VD' +--UNION SELECT 1435,'Essert-Pittet','Essert-Pittet' +--UNION SELECT 1436,'Treycovagnes','Treycovagnes' +--UNION SELECT 1438,'Mathod','Mathod' +--UNION SELECT 1441,'Valeyres-Montagny','Valeyres-sous-Montagny' +--UNION SELECT 1443,'Champvent','Champvent' +--UNION SELECT 1445,'Vuiteboeuf','Vuiteboeuf' +--UNION SELECT 1446,'Baulmes','Baulmes' +--UNION SELECT 1450,'Ste-Croix','Ste-Croix' +--UNION SELECT 1450,'La Sagne VD','La Sagne Ste-Croix' +--UNION SELECT 1454,'L''Auberson','L''Auberson' +--UNION SELECT 1452,'Les Rasses','Les Rasses' +--UNION SELECT 1453,'Bullet','Bullet' +--UNION SELECT 1462,'Yvonand','Yvonand' +--UNION SELECT 1463,'Rovray','Rovray' +--UNION SELECT 1468,'Cheyres','Cheyres' +--UNION SELECT 1470,'Estavayer-le-Lac','Estavayer-le-Lac' +--UNION SELECT 1473,'Font','Font' +--UNION SELECT 1483,'Montet Broye','Montet Broye' +--UNION SELECT 1482,'Cugy FR','Cugy FR' +--UNION SELECT 1541,'Bussy FR','Bussy FR' +--UNION SELECT 1484,'Aumont','Aumont' +--UNION SELECT 1485,'Nuvilly','Nuvilly' +--UNION SELECT 1486,'Vuissens','Vuissens' +--UNION SELECT 1537,'Champtauroz','Champtauroz' +--UNION SELECT 1538,'Treytorrens-Payern','Treytorrens Payerne' +--UNION SELECT 1489,'Murist','Murist' +--UNION SELECT 1510,'Moudon','Moudon' +--UNION SELECT 1512,'Chavannes-s-Moudon','Chavannes-sur-Moudon' +--UNION SELECT 1513,'Hermenches','Hermenches' +--UNION SELECT 1514,'Bussy-sur-Moudon','Bussy-sur-Moudon' +--UNION SELECT 1522,'Oulens-sur-Lucens','Oulens-sur-Lucens' +--UNION SELECT 1515,'Villars-le-Comte','Villars-le-Comte' +--UNION SELECT 1515,'Neyruz-sur-Moudon','Neyruz-sur-Moudon' +--UNION SELECT 1410,'Denezy','Denezy' +--UNION SELECT 1522,'Lucens','Lucens' +--UNION SELECT 1521,'Curtilles','Curtilles' +--UNION SELECT 1527,'Villeneuve FR','Villeneuve FR' +--UNION SELECT 1528,'Surpierre','Surpierre' +--UNION SELECT 1529,'Cheiry','Cheiry' +--UNION SELECT 1530,'Payerne','Payerne' +--UNION SELECT 1534,'Sassel','Sassel' +--UNION SELECT 1536,'Combremont-Petit','Combremont-le-Petit' +--UNION SELECT 1526,'Forel-sur-Lucens','Forel-sur-Lucens' +--UNION SELECT 1526,'Cremin','Cremin' +--UNION SELECT 1543,'Grandcour','Grandcour' +--UNION SELECT 1544,'Gletterens','Gletterens' +--UNION SELECT 1545,'Chevroux','Chevroux' +--UNION SELECT 1551,'Vers-chez-Perrin','Vers-chez-Perrin' +--UNION SELECT 1552,'Trey','Trey' +--UNION SELECT 1555,'Villarzel','Villarzel' +--UNION SELECT 1682,'Villars-Bramard','Villars-Bramard' +--UNION SELECT 1682,'Dompierre VD','Dompierre VD' +--UNION SELECT 1535,'Combremont-Grand','Combremont-le-Grand' +--UNION SELECT 1563,'Dompierre FR','Dompierre FR' +--UNION SELECT 1564,'Domdidier','Domdidier' +--UNION SELECT 1565,'Missy','Missy' +--UNION SELECT 1475,'Autavaux','Autavaux' +--UNION SELECT 1567,'Delley','Delley' +--UNION SELECT 1568,'Portalban','Portalban' +--UNION SELECT 1566,'St-Aubin FR','St-Aubin FR' +--UNION SELECT 1580,'Avenches','Avenches' +--UNION SELECT 1583,'Villarepos','Villarepos' +--UNION SELECT 1584,'Villars-le-Grand','Villars-le-Grand' +--UNION SELECT 1585,'Salavaux','Salavaux' +--UNION SELECT 1586,'Vallamand','Vallamand' +--UNION SELECT 1587,'Montmagny','Montmagny' +--UNION SELECT 1589,'Chabrey','Chabrey' +--UNION SELECT 1587,'Constantine','Constantine' +--UNION SELECT 1588,'Cudrefin','Cudrefin' +--UNION SELECT 1595,'Faoug','Faoug' +--UNION SELECT 1673,'Ecublens FR','Ecublens FR' +--UNION SELECT 1525,'Henniez','Henniez' +--UNION SELECT 1524,'Marnand','Marnand' +--UNION SELECT 1090,'La Croix Lutry','La Croix Lutry' +--UNION SELECT 1091,'Grandvaux','Grandvaux' +--UNION SELECT 1091,'Aran','Aran' +--UNION SELECT 1070,'Puidoux','Puidoux' +--UNION SELECT 1071,'Chexbres','Chexbres' +--UNION SELECT 1072,'Forel Lavaux','Forel Lavaux' +--UNION SELECT 1614,'Granges Veveyse','Granges Veveyse' +--UNION SELECT 1615,'Bossonnens','Bossonnens' +--UNION SELECT 1616,'Attalens','Attalens' +--UNION SELECT 1617,'Remaufens','Remaufens' +--UNION SELECT 1619,'Les Paccots','Les Paccots' +--UNION SELECT 1623,'Semsales','Semsales' +--UNION SELECT 1624,'La Verrerie','La Verrerie' +--UNION SELECT 1627,'Vaulruz','Vaulruz' +--UNION SELECT 1628,'Vuadens','Vuadens' +--UNION SELECT 1630,'Bulle','Bulle' +--UNION SELECT 1633,'Vuippens','Vuippens' +--UNION SELECT 1642,'Sorens','Sorens' +--UNION SELECT 1643,'Gumefens','Gumefens' +--UNION SELECT 1644,'Avry-devant-Pont','Avry-devant-Pont' +--UNION SELECT 1645,'Le Bry','Le Bry' +--UNION SELECT 1646,'Echarlens','Echarlens' +--UNION SELECT 1648,'Hauteville','Hauteville' +--UNION SELECT 1656,'Im Fang','Im Fang' +--UNION SELECT 1656,'Jaun','Jaun' +--UNION SELECT 1654,'Cerniat FR','Cerniat FR' +--UNION SELECT 1651,'Villarvolard','Villarvolard' +--UNION SELECT 1652,'Botterens','Botterens' +--UNION SELECT 1638,'Morlon','Morlon' +--UNION SELECT 1632,'Riaz','Riaz' +--UNION SELECT 1633,'Marsens','Marsens' +--UNION SELECT 1634,'La Roche FR','La Roche FR' +--UNION SELECT 1649,'Pont-la-Ville','Pont-la-Ville' +--UNION SELECT 1636,'Broc','Broc' +--UNION SELECT 1663,'Pringy','Pringy' +--UNION SELECT 1665,'Estavannens','Estavannens' +--UNION SELECT 1667,'Enney','Enney' +--UNION SELECT 1669,'Neirivue','Neirivue' +--UNION SELECT 1669,'Albeuve','Albeuve' +--UNION SELECT 1663,'Epagny','Epagny' +--UNION SELECT 1666,'Grandvillard','Grandvillard' +--UNION SELECT 1610,'Oron-la-Ville','Oron-la-Ville' +--UNION SELECT 1675,'Vauderens','Vauderens' +--UNION SELECT 1670,'Ursy','Ursy' +--UNION SELECT 1674,'Vuarmarens','Vuarmarens' +--UNION SELECT 1673,'Rue','Rue' +--UNION SELECT 1673,'Promasens','Promasens' +--UNION SELECT 1678,'Siviriez','Siviriez' +--UNION SELECT 1679,'Villaraboud','Villaraboud' +--UNION SELECT 1676,'Chavannes-Forts','Chavannes-les-Forts' +--UNION SELECT 1677,'Prez-vers-Siviriez','Prez-vers-Siviriez' +--UNION SELECT 1680,'Romont FR','Romont FR' +--UNION SELECT 1681,'Billens','Billens' +--UNION SELECT 1683,'Brenles','Brenles' +--UNION SELECT 1683,'Chesalles-Moudon','Chesalles-sur-Moudon' +--UNION SELECT 1694,'Orsonnens','Orsonnens' +--UNION SELECT 1694,'Villarsiviriaux','Villarsiviriaux' +--UNION SELECT 1695,'Villarlod','Villarlod' +--UNION SELECT 1696,'Vuisternens-Ogoz','Vuisternens-en-Ogoz' +--UNION SELECT 1685,'Villariaz','Villariaz' +--UNION SELECT 1688,'Sommentier','Sommentier' +--UNION SELECT 1626,'Romanens','Romanens' +--UNION SELECT 1692,'Massonnens','Massonnens' +--UNION SELECT 1687,'Vuisternens-Romont','Vuisternens-devant-Romont' +--UNION SELECT 1612,'Ecoteaux','Ecoteaux' +--UNION SELECT 1613,'Maracon','Maracon' +--UNION SELECT 1609,'St-Martin FR','St-Martin FR' +--UNION SELECT 1697,'La Joux FR','La Joux FR' +--UNION SELECT 1699,'Bouloz','Bouloz' +--UNION SELECT 1699,'Porsel','Porsel' +--UNION SELECT 1699,'Pont Veveyse','Pont Veveyse' +--UNION SELECT 1700,'Fribourg','Fribourg' +--UNION SELECT 1700,'Fribourg 1','Fribourg 1' +--UNION SELECT 1700,'Fribourg','Fribourg' +--UNION SELECT 1700,'Fribourg','Fribourg' +--UNION SELECT 1700,'Fribourg','Fribourg' +--UNION SELECT 1700,'Fribourg','Fribourg' +--UNION SELECT 1763,'Granges-Paccot','Granges-Paccot' +--UNION SELECT 1700,'Fribourg 1 Dist','Fribourg 1 Distribution' +--UNION SELECT 1700,'Fribourg','Fribourg' +--UNION SELECT 1720,'Corminboeuf','Corminboeuf' +--UNION SELECT 1721,'Misery-Courtion','Misery-Courtion' +--UNION SELECT 1735,'Giffers','Giffers' +--UNION SELECT 1736,'St. Silvester','St. Silvester' +--UNION SELECT 1737,'Plasselb','Plasselb' +--UNION SELECT 1738,'Sangernboden','Sangernboden' +--UNION SELECT 1716,'Schwarzsee','Schwarzsee' +--UNION SELECT 1724,'Bonnefontaine','Bonnefontaine' +--UNION SELECT 1727,'Corpataux','Corpataux' +--UNION SELECT 1728,'Rossens FR','Rossens FR' +--UNION SELECT 1731,'Ependes FR','Ependes FR' +--UNION SELECT 1732,'Arconciel','Arconciel' +--UNION SELECT 1733,'Treyvaux','Treyvaux' +--UNION SELECT 1712,'Tafers','Tafers' +--UNION SELECT 1713,'St. Antoni','St. Antoni' +--UNION SELECT 1714,'Heitenried','Heitenried' +--UNION SELECT 1715,'Alterswil FR','Alterswil FR' +--UNION SELECT 1716,'Plaffeien','Plaffeien' +--UNION SELECT 1717,'St. Ursen','St. Ursen' +--UNION SELECT 1718,'Rechthalten','Rechthalten' +--UNION SELECT 1722,'Bourguillon','Bourguillon' +--UNION SELECT 1723,'Marly','Marly' +--UNION SELECT 1724,'Le Mouret','Le Mouret' +--UNION SELECT 1725,'Posieux','Posieux' +--UNION SELECT 1726,'Farvagny-le-Grand','Farvagny-le-Grand' +--UNION SELECT 1747,'Corserey','Corserey' +--UNION SELECT 1748,'Torny-le-Grand','Torny-le-Grand' +--UNION SELECT 1749,'Middes','Middes' +--UNION SELECT 1740,'Neyruz FR','Neyruz FR' +--UNION SELECT 1741,'Cottens FR','Cottens FR' +--UNION SELECT 1745,'Lentigny','Lentigny' +--UNION SELECT 1742,'Autigny','Autigny' +--UNION SELECT 1695,'Estavayer-Gibloux','Estavayer-le-Gibloux' +--UNION SELECT 1691,'Villarimboud','Villarimboud' +--UNION SELECT 1753,'Matran','Matran' +--UNION SELECT 1756,'Onnens FR','Onnens FR' +--UNION SELECT 1690,'Villaz-St-Pierre','Villaz-St-Pierre' +--UNION SELECT 1762,'Givisiez','Givisiez' +--UNION SELECT 1772,'Grolley','Grolley' +--UNION SELECT 1774,'Cousset','Cousset' +--UNION SELECT 1776,'Montagny-la-Ville','Montagny-la-Ville' +--UNION SELECT 1795,'Courlevon','Courlevon' +--UNION SELECT 1796,'Courgevaux','Courgevaux' +--UNION SELECT 1794,'Salvenach','Salvenach' +--UNION SELECT 1793,'Jeuss','Jeuss' +--UNION SELECT 1792,'Cordast','Cordast' +--UNION SELECT 1791,'Courtaman','Courtaman' +--UNION SELECT 1788,'Praz Vully','Praz Vully' +--UNION SELECT 1789,'Lugnorre','Lugnorre' +--UNION SELECT 1782,'Belfaux','Belfaux' +--UNION SELECT 1783,'Pensier','Pensier' +--UNION SELECT 1784,'Courtepin','Courtepin' +--UNION SELECT 1785,'Cressier FR','Cressier FR' +--UNION SELECT 1786,'Sugiez','Sugiez' +--UNION SELECT 1800,'Vevey','Vevey' +--UNION SELECT 1800,'Vevey 1','Vevey 1' +--UNION SELECT 1800,'Vevey 1 Dist','Vevey 1 Distribution' +--UNION SELECT 1808,'Monts-de-Corsier','Les Monts-de-Corsier' +--UNION SELECT 1809,'Fenil-sur-Corsier','Fenil-sur-Corsier' +--UNION SELECT 1802,'Corseaux','Corseaux' +--UNION SELECT 1803,'Chardonne','Chardonne' +--UNION SELECT 1804,'Corsier-sur-Vevey','Corsier-sur-Vevey' +--UNION SELECT 1805,'Jongny','Jongny' +--UNION SELECT 1807,'Blonay','Blonay' +--UNION SELECT 1071,'Rivaz','Rivaz' +--UNION SELECT 1071,'St-Saphorin-Lavaux','St-Saphorin Lavaux' +--UNION SELECT 1814,'La Tour-de-Peilz','La Tour-de-Peilz' +--UNION SELECT 1815,'Clarens','Clarens' +--UNION SELECT 1816,'Chailly-Montreux','Chailly-Montreux' +--UNION SELECT 1817,'Brent','Brent' +--UNION SELECT 1820,'Montreux','Montreux' +--UNION SELECT 1820,'Montreux 1','Montreux 1' +--UNION SELECT 1820,'Montreux 2','Montreux 2' +--UNION SELECT 1820,'Montreux 1 Dist','Montreux 1 Distribution' +--UNION SELECT 1822,'Chernex','Chernex' +--UNION SELECT 1823,'Glion','Glion' +--UNION SELECT 1824,'Caux','Caux' +--UNION SELECT 1832,'Villard-sur-Chamby','Villard-sur-Chamby' +--UNION SELECT 1669,'Sciernes-d''Albeuve','Les Sciernes-d''Albeuve' +--UNION SELECT 1658,'La Tine','La Tine' +--UNION SELECT 1660,'Les Moulins','Les Moulins' +--UNION SELECT 1659,'Flendruz','Flendruz' +--UNION SELECT 1660,'L''Etivaz','L''Etivaz' +--UNION SELECT 1832,'Chamby','Chamby' +--UNION SELECT 1833,'Les Avants','Les Avants' +--UNION SELECT 1669,'Montbovon','Montbovon' +--UNION SELECT 1659,'Rougemont','Rougemont' +--UNION SELECT 1844,'Villeneuve VD','Villeneuve VD' +--UNION SELECT 1847,'Rennaz','Rennaz' +--UNION SELECT 1845,'Noville','Noville' +--UNION SELECT 1846,'Chessel','Chessel' +--UNION SELECT 1852,'Roche VD','Roche VD' +--UNION SELECT 1853,'Yvorne','Yvorne' +--UNION SELECT 1854,'Leysin','Leysin' +--UNION SELECT 1867,'St-Triphon','St-Triphon' +--UNION SELECT 1860,'Aigle','Aigle' +--UNION SELECT 1856,'Corbeyrier','Corbeyrier' +--UNION SELECT 1862,'La Comballaz','La Comballaz' +--UNION SELECT 1862,'Les Mosses','Les Mosses' +--UNION SELECT 1866,'La Forclaz VD','La Forclaz VD' +--UNION SELECT 1867,'Panex','Panex' +--UNION SELECT 1864,'Vers-l''Eglise','Vers-l''Eglise' +--UNION SELECT 1865,'Les Diablerets','Les Diablerets' +--UNION SELECT 1867,'Ollon VD','Ollon VD' +--UNION SELECT 1868,'Collombey','Collombey' +--UNION SELECT 1870,'Monthey','Monthey' +--UNION SELECT 1870,'Monthey 2','Monthey 2' +--UNION SELECT 1871,'Les Giettes','Les Giettes' +--UNION SELECT 1872,'Troistorrents','Troistorrents' +--UNION SELECT 1873,'Val-d''Illiez','Val-d''Illiez' +--UNION SELECT 1875,'Morgins','Morgins' +--UNION SELECT 1880,'Bex','Bex' +--UNION SELECT 1880,'Fenalet-sur-Bex','Fenalet-sur-Bex' +--UNION SELECT 1880,'Les Plans-sur-Bex','Les Plans-sur-Bex' +--UNION SELECT 1882,'Gryon','Gryon' +--UNION SELECT 1884,'Villars-sur-Ollon','Villars-sur-Ollon' +--UNION SELECT 1890,'St-Maurice','St-Maurice' +--UNION SELECT 1890,'Mex VS','Mex VS' +--UNION SELECT 1869,'Massongex','Massongex' +--UNION SELECT 1895,'Vionnaz','Vionnaz' +--UNION SELECT 1897,'Les Evouettes','Les Evouettes' +--UNION SELECT 1899,'Torgon','Torgon' +--UNION SELECT 1892,'Lavey-Village','Lavey-Village' +--UNION SELECT 1893,'Muraz Collombey','Muraz Collombey' +--UNION SELECT 1896,'Vouvry','Vouvry' +--UNION SELECT 1896,'Miex','Miex' +--UNION SELECT 1897,'Bouveret','Bouveret' +--UNION SELECT 1898,'St-Gingolph','St-Gingolph' +--UNION SELECT 1902,'Evionnaz','Evionnaz' +--UNION SELECT 1903,'Collonges','Collonges' +--UNION SELECT 1904,'Vernayaz','Vernayaz' +--UNION SELECT 1906,'Charrat','Charrat' +--UNION SELECT 1907,'Saxon','Saxon' +--UNION SELECT 1908,'Riddes','Riddes' +--UNION SELECT 1912,'Leytron','Leytron' +--UNION SELECT 1911,'Ovronnaz','Ovronnaz' +--UNION SELECT 1913,'Saillon','Saillon' +--UNION SELECT 1918,'La Tzoumaz','La Tzoumaz' +--UNION SELECT 1955,'Chamoson','Chamoson' +--UNION SELECT 1955,'St-Pierre-Clages','St-Pierre-de-Clages' +--UNION SELECT 1957,'Ardon','Ardon' +--UNION SELECT 1920,'Martigny','Martigny' +--UNION SELECT 1920,'Martigny 1','Martigny 1' +--UNION SELECT 1920,'Martigny Bourg','Martigny Bourg' +--UNION SELECT 1921,'Martigny-Croix','Martigny-Croix' +--UNION SELECT 1927,'Chemin','Chemin' +--UNION SELECT 1929,'Trient','Trient' +--UNION SELECT 1928,'Ravoire','Ravoire' +--UNION SELECT 1922,'Salvan','Salvan' +--UNION SELECT 1922,'Granges Salvan','Les Granges Salvan' +--UNION SELECT 1925,'Finhaut','Finhaut' +--UNION SELECT 1926,'Fully','Fully' +--UNION SELECT 1932,'Bovernier','Bovernier' +--UNION SELECT 1942,'Levron','Levron' +--UNION SELECT 1948,'Lourtier','Lourtier' +--UNION SELECT 1948,'Fionnay','Fionnay' +--UNION SELECT 1948,'Sarreyer','Sarreyer' +--UNION SELECT 1945,'Liddes','Liddes' +--UNION SELECT 1946,'Bourg-St-Pierre','Bourg-St-Pierre' +--UNION SELECT 1943,'Praz-de-Fort','Praz-de-Fort' +--UNION SELECT 1944,'La Fouly VS','La Fouly VS' +--UNION SELECT 1933,'Sembrancher','Sembrancher' +--UNION SELECT 1936,'Verbier','Verbier' +--UNION SELECT 1938,'Champex-Lac','Champex-Lac' +--UNION SELECT 1950,'Sion','Sion' +--UNION SELECT 1950,'Sion 1','Sion 1' +--UNION SELECT 1950,'Sion 1 Dist','Sion 1 Distribution' +--UNION SELECT 1950,'Sion','Sion' +--UNION SELECT 1950,'Sion 2','Sion 2' +--UNION SELECT 1976,'Erde','Erde' +--UNION SELECT 1976,'Aven','Aven' +--UNION SELECT 1976,'Daillon','Daillon' +--UNION SELECT 1971,'Grimisuat','Grimisuat' +--UNION SELECT 1974,'Arbaz','Arbaz' +--UNION SELECT 1973,'Nax','Nax' +--UNION SELECT 1968,'Mase','Mase' +--UNION SELECT 1969,'St-Martin VS','St-Martin VS' +--UNION SELECT 1981,'Vex','Vex' +--UNION SELECT 1982,'Euseigne','Euseigne' +--UNION SELECT 1986,'Arolla','Arolla' +--UNION SELECT 1985,'La Sage','La Sage' +--UNION SELECT 1988,'Les Collons','Les Collons' +--UNION SELECT 1991,'Salins','Salins' +--UNION SELECT 1992,'Les Agettes','Les Agettes' +--UNION SELECT 1992,'Les Mayens-de-Sion','Les Mayens-de-Sion' +--UNION SELECT 1993,'Veysonnaz','Veysonnaz' +--UNION SELECT 1997,'Siviez Nendaz','Siviez Nendaz' +--UNION SELECT 1996,'Fey Nendaz','Fey Nendaz' +--UNION SELECT 1996,'Beuson Nendaz','Beuson Nendaz' +--UNION SELECT 1996,'Baar Nendaz','Baar Nendaz' +--UNION SELECT 1996,'Basse-Nendaz','Basse-Nendaz' +--UNION SELECT 1997,'Haute-Nendaz','Haute-Nendaz' +--UNION SELECT 1994,'Aproz Nendaz','Aproz Nendaz' +--UNION SELECT 1962,'Pont-de-la-Morge','Pont-de-la-Morge Sion' +--UNION SELECT 1964,'Conthey','Conthey' +--UNION SELECT 1966,'Ayent','Ayent' +--UNION SELECT 1967,'Bramois','Bramois' +--UNION SELECT 1988,'Thyon','Thyon' +--UNION SELECT 2012,'Auvernier','Auvernier' +--UNION SELECT 2013,'Colombier NE','Colombier NE' +--UNION SELECT 2015,'Areuse','Areuse' +--UNION SELECT 2016,'Cortaillod','Cortaillod' +--UNION SELECT 2017,'Boudry','Boudry' +--UNION SELECT 2022,'Bevaix','Bevaix' +--UNION SELECT 2023,'Gorgier','Gorgier' +--UNION SELECT 2024,'St-Aubin-Sauges','St-Aubin-Sauges' +--UNION SELECT 2025,'Chez-le-Bart','Chez-le-Bart' +--UNION SELECT 2028,'Vaumarcus','Vaumarcus' +--UNION SELECT 2034,'Peseux','Peseux' +--UNION SELECT 2035,'Corcelles NE','Corcelles NE' +--UNION SELECT 2042,'Valangin','Valangin' +--UNION SELECT 2043,'Boudevilliers','Boudevilliers' +--UNION SELECT 2046,'Fontaines NE','Fontaines NE' +--UNION SELECT 2052,'Fontainemelon','Fontainemelon' +--UNION SELECT 2053,'Cernier','Cernier' +--UNION SELECT 2056,'Dombresson','Dombresson' +--UNION SELECT 2057,'Villiers','Villiers' +--UNION SELECT 2063,'Vilars NE','Vilars NE' +--UNION SELECT 2065,'Savagnier','Savagnier' +--UNION SELECT 2067,'Chaumont','Chaumont' +--UNION SELECT 2068,'Hauterive NE','Hauterive NE' +--UNION SELECT 2072,'St-Blaise','St-Blaise' +--UNION SELECT 2073,'Enges','Enges' +--UNION SELECT 2074,'Marin-Epagnier','Marin-Epagnier' +--UNION SELECT 3238,'Gals','Gals' +--UNION SELECT 2087,'Cornaux NE','Cornaux NE' +--UNION SELECT 2088,'Cressier NE','Cressier NE' +--UNION SELECT 2318,'Brot-Plamboz','Brot-Plamboz' +--UNION SELECT 2103,'Noiraigue','Noiraigue' +--UNION SELECT 2105,'Travers','Travers' +--UNION SELECT 2108,'Couvet','Couvet' +--UNION SELECT 2113,'Boveresse','Boveresse' +--UNION SELECT 2114,'Fleurier','Fleurier' +--UNION SELECT 2115,'Buttes','Buttes' +--UNION SELECT 2123,'St-Sulpice NE','St-Sulpice NE' +--UNION SELECT 2406,'Le Brouillet','Le Brouillet' +--UNION SELECT 2127,'Les Bayards','Les Bayards' +--UNION SELECT 2149,'Champ-du-Moulin','Champ-du-Moulin' +--UNION SELECT 2124,'Les Sagnettes','Les Sagnettes' +--UNION SELECT 2116,'Mont-de-Buttes','Mont-de-Buttes' +--UNION SELECT 1454,'La Vraconnaz','La Vraconnaz' +--UNION SELECT 2019,'Chambrelien','Chambrelien' +--UNION SELECT 2019,'Rochefort','Rochefort' +--UNION SELECT 2037,'Montmollin','Montmollin' +--UNION SELECT 2206,'Geneveys-Coffrane','Les Geneveys-sur-Coffrane' +--UNION SELECT 2207,'Coffrane','Coffrane' +--UNION SELECT 2208,'Les Hauts-Geneveys','Les Hauts-Geneveys' +--UNION SELECT 2300,'La Chaux-de-Fonds','La Chaux-de-Fonds' +--UNION SELECT 2300,'La Chaux-de-Fds 1','La Chaux-de-Fonds 1' +--UNION SELECT 2300,'La Chaux-de-Fonds','La Chaux-de-Fonds' +--UNION SELECT 2300,'La Chaux-de-Fonds','La Chaux-de-Fonds' +--UNION SELECT 2300,'Chdfds 1 Dist','La Chaux-de-Fonds 1 Dist' +--UNION SELECT 2300,'La Chaux-de-Fonds','La Chaux-de-Fonds' +--UNION SELECT 2300,'La Chx-de-F. Eplat','La Chx-de-F. Les Eplatures' +--UNION SELECT 2316,'Petit-Martel','Petit-Martel' +--UNION SELECT 2338,'Les Emibois','Les Emibois' +--UNION SELECT 2314,'La Sagne NE','La Sagne NE' +--UNION SELECT 2316,'Ponts-de-Martel','Les Ponts-de-Martel' +--UNION SELECT 2325,'Les Planchettes','Les Planchettes' +--UNION SELECT 2300,'La Cibourg','La Cibourg' +--UNION SELECT 2336,'Les Bois','Les Bois' +--UNION SELECT 2400,'Le Locle','Le Locle' +--UNION SELECT 2405,'La Chaux-du-Milieu','La Chaux-du-Milieu' +--UNION SELECT 2416,'Les Brenets','Les Brenets' +--UNION SELECT 2500,'Biel/Bienne','Biel/Bienne' +--UNION SELECT 2500,'Biel/Bienne 1','Biel/Bienne 1' +--UNION SELECT 2500,'Biel/Bienne 3','Biel/Bienne 3' +--UNION SELECT 2500,'Biel/Bienne J.P.','Biel/Bienne Jardin Paradis' +--UNION SELECT 2500,'Biel/Bienne 6','Biel/Bienne 6' +--UNION SELECT 2500,'Biel/Bienne 7','Biel/Bienne 7' +--UNION SELECT 2500,'Biel/Bienne 8','Biel/Bienne 8' +--UNION SELECT 2500,'Biel/Bienne Zust','Biel/Bienne Zustellung' +--UNION SELECT 2500,'Biel 1 Annahme','Biel/Bienne 1 Annahme' +--UNION SELECT 2500,'Biel/Bienne','Biel/Bienne' +--UNION SELECT 2500,'Biel/Bienne','Biel/Bienne' +--UNION SELECT 2500,'Biel/Bienne','Biel/Bienne' +--UNION SELECT 2500,'Biel/Bienne','Biel/Bienne' +--UNION SELECT 2500,'Biel/Bienne','Biel/Bienne' +--UNION SELECT 2513,'Twann','Twann' +--UNION SELECT 2514,'Ligerz','Ligerz' +--UNION SELECT 2516,'Lamboing','Lamboing' +--UNION SELECT 2517,'Diesse','Diesse' +--UNION SELECT 2518,'Nods','Nods' +--UNION SELECT 2520,'La Neuveville','La Neuveville' +--UNION SELECT 2525,'Le Landeron','Le Landeron' +--UNION SELECT 2532,'Magglingen/Macolin','Magglingen/Macolin' +--UNION SELECT 2533,'Evilard','Evilard' +--UNION SELECT 2534,'Orvin','Orvin' +--UNION SELECT 2535,'Frinvillier','Frinvillier' +--UNION SELECT 2536,'Plagne','Plagne' +--UNION SELECT 2537,'Vauffelin','Vauffelin' +--UNION SELECT 2538,'Romont BE','Romont BE' +--UNION SELECT 2540,'Grenchen','Grenchen' +--UNION SELECT 2540,'Grenchen 1','Grenchen 1' +--UNION SELECT 2540,'Grenchen Schmelzi','Grenchen Schmelzi' +--UNION SELECT 2542,'Pieterlen','Pieterlen' +--UNION SELECT 2543,'Lengnau BE','Lengnau BE' +--UNION SELECT 2544,'Bettlach','Bettlach' +--UNION SELECT 2545,'Selzach','Selzach' +--UNION SELECT 2552,'Orpund','Orpund' +--UNION SELECT 2553,'Safnern','Safnern' +--UNION SELECT 2554,'Meinisberg','Meinisberg' +--UNION SELECT 2556,'Scheuren','Scheuren' +--UNION SELECT 2557,'Studen BE','Studen BE' +--UNION SELECT 2558,'Aegerten','Aegerten' +--UNION SELECT 2560,'Nidau','Nidau' +--UNION SELECT 2562,'Port','Port' +--UNION SELECT 2563,'Ipsach','Ipsach' +--UNION SELECT 2564,'Bellmund','Bellmund' +--UNION SELECT 2565,'Jens','Jens' +--UNION SELECT 2572,'Sutz','Sutz' +--UNION SELECT 2577,'Siselen BE','Siselen BE' +--UNION SELECT 2604,'La Heutte','La Heutte' +--UNION SELECT 2605,'Sonceboz-Sombeval','Sonceboz-Sombeval' +--UNION SELECT 2608,'Courtelary','Courtelary' +--UNION SELECT 2608,'Mtgne-Courtelary','Montagne-de-Courtelary' +--UNION SELECT 2610,'St-Imier','St-Imier' +--UNION SELECT 2610,'Mont-Soleil','Mont-Soleil' +--UNION SELECT 2610,'Mont-Crosin','Mont-Crosin' +--UNION SELECT 2612,'Cormoret','Cormoret' +--UNION SELECT 2613,'Villeret','Villeret' +--UNION SELECT 2615,'Sonvilier','Sonvilier' +--UNION SELECT 2615,'Montagne-Sonvilier','Montagne-de-Sonvilier' +--UNION SELECT 2616,'Renan BE','Renan BE' +--UNION SELECT 2710,'Tavannes','Tavannes' +--UNION SELECT 2712,'Le Fuet','Le Fuet' +--UNION SELECT 2717,'Fornet-Dessous','Fornet-Dessous' +--UNION SELECT 2718,'Fornet-Dessus','Fornet-Dessus' +--UNION SELECT 2716,'Sornetan','Sornetan' +--UNION SELECT 2713,'Bellelay','Bellelay' +--UNION SELECT 2714,'Les Genevez JU','Les Genevez JU' +--UNION SELECT 2718,'Lajoux JU','Lajoux JU' +--UNION SELECT 2720,'Tramelan','Tramelan' +--UNION SELECT 2720,'La Tanne','La Tanne' +--UNION SELECT 2722,'Les Reussilles','Les Reussilles' +--UNION SELECT 2723,'Mont-Tramelan','Mont-Tramelan' +--UNION SELECT 2345,'Les Breuleux','Les Breuleux' +--UNION SELECT 2345,'Le Cerneux-Veusil','Le Cerneux-Veusil' +--UNION SELECT 2345,'Chaux-des-Breuleux','La Chaux-des-Breuleux' +--UNION SELECT 2340,'Le Noirmont','Le Noirmont' +--UNION SELECT 2353,'Les Pommerats','Les Pommerats' +--UNION SELECT 2354,'Goumois','Goumois' +--UNION SELECT 2732,'Reconvilier','Reconvilier' +--UNION SELECT 2732,'Saicourt','Saicourt' +--UNION SELECT 2732,'Saules BE','Saules BE' +--UNION SELECT 2732,'Loveresse','Loveresse' +--UNION SELECT 2733,'Pontenet','Pontenet' +--UNION SELECT 2736,'Sorvilier','Sorvilier' +--UNION SELECT 2738,'Court','Court' +--UNION SELECT 2740,'Moutier','Moutier' +--UNION SELECT 2742,'Perrefitte','Perrefitte' +--UNION SELECT 2748,'Souboz','Souboz' +--UNION SELECT 2743,'Eschert','Eschert' +--UNION SELECT 2744,'Belprahon','Belprahon' +--UNION SELECT 2747,'Seehof','Seehof' +--UNION SELECT 2745,'Grandval','Grandval' +--UNION SELECT 2747,'Corcelles BE','Corcelles BE' +--UNION SELECT 2762,'Roches BE','Roches BE' +--UNION SELECT 2832,'Rebeuvelier','Rebeuvelier' +--UNION SELECT 2830,'Courrendlin','Courrendlin' +--UNION SELECT 2802,'Develier','Develier' +--UNION SELECT 2803,'Bourrignon','Bourrignon' +--UNION SELECT 2806,'Mettembert','Mettembert' +--UNION SELECT 2807,'Pleigne','Pleigne' +--UNION SELECT 2807,'Lucelle','Lucelle' +--UNION SELECT 2812,'Movelier','Movelier' +--UNION SELECT 2813,'Ederswiler','Ederswiler' +--UNION SELECT 2814,'Roggenburg','Roggenburg' +--UNION SELECT 2822,'Courroux','Courroux' +--UNION SELECT 2823,'Courcelon','Courcelon' +--UNION SELECT 2824,'Vicques','Vicques' +--UNION SELECT 2825,'Courchapoix','Courchapoix' +--UNION SELECT 2826,'Corban','Corban' +--UNION SELECT 2827,'Mervelier','Mervelier' +--UNION SELECT 2828,'Montsevelier','Montsevelier' +--UNION SELECT 2829,'Vermes','Vermes' +--UNION SELECT 2842,'Rossemaison','Rossemaison' +--UNION SELECT 2853,'Courfaivre','Courfaivre' +--UNION SELECT 2854,'Bassecourt','Bassecourt' +--UNION SELECT 2855,'Glovelier','Glovelier' +--UNION SELECT 2857,'Montavon','Montavon' +--UNION SELECT 2863,'Undervelier','Undervelier' +--UNION SELECT 2864,'Soulce','Soulce' +--UNION SELECT 2873,'Saulcy','Saulcy' +--UNION SELECT 2882,'St-Ursanne','St-Ursanne' +--UNION SELECT 2883,'Montmelon','Montmelon' +--UNION SELECT 2884,'Montenol','Montenol' +--UNION SELECT 2885,'Epauvillers','Epauvillers' +--UNION SELECT 2886,'Epiquerez','Epiquerez' +--UNION SELECT 2887,'Soubey','Soubey' +--UNION SELECT 2888,'Seleute','Seleute' +--UNION SELECT 2889,'Ocourt','Ocourt' +--UNION SELECT 2950,'Courgenay','Courgenay' +--UNION SELECT 2900,'Porrentruy','Porrentruy' +--UNION SELECT 2900,'Porrentruy 1','Porrentruy 1' +--UNION SELECT 2900,'Porrentruy 2','Porrentruy 2' +--UNION SELECT 2900,'Porrentruy 1 Dist','Porrentruy 1 Distribution' +--UNION SELECT 2902,'Fontenais','Fontenais' +--UNION SELECT 2903,'Villars-Fontenais','Villars-sur-Fontenais' +--UNION SELECT 2904,'Bressaucourt','Bressaucourt' +--UNION SELECT 2905,'Courtedoux','Courtedoux' +--UNION SELECT 2906,'Chevenez','Chevenez' +--UNION SELECT 2907,'Rocourt','Rocourt' +--UNION SELECT 2908,'Grandfontaine','Grandfontaine' +--UNION SELECT 2912,'Roche-d''Or','Roche-d''ORr' +--UNION SELECT 2914,'Damvant','Damvant' +--UNION SELECT 2915,'Bure','Bure' +--UNION SELECT 2916,'Fahy','Fahy' +--UNION SELECT 2922,'Courchavon','Courchavon' +--UNION SELECT 2924,'Montignez','Montignez' +--UNION SELECT 2925,'Buix','Buix' +--UNION SELECT 2926,'Boncourt','Boncourt' +--UNION SELECT 2932,'Coeuve','Coeuve' +--UNION SELECT 2942,'Alle','Alle' +--UNION SELECT 2943,'Vendlincourt','Vendlincourt' +--UNION SELECT 2944,'Bonfol','Bonfol' +--UNION SELECT 2947,'Charmoille','Charmoille' +--UNION SELECT 2952,'Cornol','Cornol' +--UNION SELECT 2954,'Asuel','Asuel' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern Europaplatz','Bern Europaplatz' +--UNION SELECT 3000,'Bern 6','Bern 6' +--UNION SELECT 3000,'Bern 8','Bern 8' +--UNION SELECT 3000,'Bern 9','Bern 9' +--UNION SELECT 3000,'Bern 13','Bern 13' +--UNION SELECT 3000,'Bern 14','Bern 14' +--UNION SELECT 3000,'Bern 15','Bern 15' +--UNION SELECT 3000,'Bern 16','Bern 16' +--UNION SELECT 3000,'Bern 22','Bern 22' +--UNION SELECT 3000,'Bern Sulgenbach','Bern Sulgenbach' +--UNION SELECT 3000,'Bern Spitalacker','Bern Spitalacker' +--UNION SELECT 3000,'Bern Freudenberger','Bern Freudenbergerplatz' +--UNION SELECT 3000,'Bern Postauto','Bern Postauto BE-FB-SO' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern PostFinance','Bern PostFinance' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 3095,'Spiegel b. Bern','Spiegel b. Bern' +--UNION SELECT 3032,'Hinterkappelen','Hinterkappelen' +--UNION SELECT 3033,'Wohlen b. Bern','Wohlen b. Bern' +--UNION SELECT 3034,'Murzelen','Murzelen' +--UNION SELECT 3035,'Frieswil','Frieswil' +--UNION SELECT 3036,'Detligen','Detligen' +--UNION SELECT 3037,'Herrenschwanden','Herrenschwanden' +--UNION SELECT 3038,'Kirchlindach','Kirchlindach' +--UNION SELECT 3042,'Ortschwaben','Ortschwaben' +--UNION SELECT 3043,'Uettligen','Uettligen' +--UNION SELECT 3045,'Meikirch','Meikirch' +--UNION SELECT 3046,'Wahlendorf','Wahlendorf' +--UNION SELECT 3047,'Bremgarten b. Bern','Bremgarten b. Bern' +--UNION SELECT 3048,'Worblaufen','Worblaufen' +--UNION SELECT 3052,'Zollikofen','Zollikofen' +--UNION SELECT 3063,'Ittigen','Ittigen' +--UNION SELECT 3065,'Bolligen','Bolligen' +--UNION SELECT 3065,'Bolligen Dorf','Bolligen Dorf' +--UNION SELECT 3066,'Stettlen','Stettlen' +--UNION SELECT 3067,'Boll','Boll' +--UNION SELECT 3068,'Utzigen','Utzigen' +--UNION SELECT 3072,'Ostermundigen','Ostermundigen' +--UNION SELECT 3072,'Ostermundigen 1','Ostermundigen 1' +--UNION SELECT 3074,'Muri b. Bern','Muri b. Bern' +--UNION SELECT 3076,'Worb','Worb' +--UNION SELECT 3076,'Worb Bollstrasse','Worb Bollstrasse' +--UNION SELECT 3077,'Enggistein','Enggistein' +--UNION SELECT 3078,'Richigen','Richigen' +--UNION SELECT 3082,'Schlosswil','Schlosswil' +--UNION SELECT 3083,'Trimstein','Trimstein' +--UNION SELECT 3084,'Wabern','Wabern' +--UNION SELECT 3086,'Zimmerwald','Zimmerwald' +--UNION SELECT 3087,'Niedermuhlern','Niedermuhlern' +--UNION SELECT 3089,'Hinterfultigen','Hinterfultigen' +--UNION SELECT 3096,'Oberbalm','Oberbalm' +--UNION SELECT 3097,'Liebefeld','Liebefeld' +--UNION SELECT 3112,'Allmendingen b. BE','Allmendingen b. Bern' +--UNION SELECT 3114,'Wichtrach','Wichtrach' +--UNION SELECT 3115,'Gerzensee','Gerzensee' +--UNION SELECT 3116,'Kirchdorf BE','Kirchdorf BE' +--UNION SELECT 3629,'Kiesen','Kiesen' +--UNION SELECT 3628,'Uttigen','Uttigen' +--UNION SELECT 3122,'Kehrsatz','Kehrsatz' +--UNION SELECT 3123,'Belp','Belp' +--UNION SELECT 3124,'Belpberg','Belpberg' +--UNION SELECT 3125,'Toffen','Toffen' +--UNION SELECT 3126,'Kaufdorf','Kaufdorf' +--UNION SELECT 3128,'Kirchenthurnen','Kirchenthurnen' +--UNION SELECT 3132,'Riggisberg','Riggisberg' +--UNION SELECT 3664,'Burgistein','Burgistein' +--UNION SELECT 3665,'Wattenwil','Wattenwil' +--UNION SELECT 3662,'Seftigen','Seftigen' +--UNION SELECT 3663,'Gurzelen','Gurzelen' +--UNION SELECT 3661,'Uetendorf','Uetendorf' +--UNION SELECT 3144,'Gasel','Gasel' +--UNION SELECT 3145,'Niederscherli','Niederscherli' +--UNION SELECT 3150,'Schwarzenburg','Schwarzenburg' +--UNION SELECT 3152,'Mamishaus','Mamishaus' +--UNION SELECT 3155,'Helgisried','Helgisried-Rohrbach' +--UNION SELECT 3156,'Riffenmatt','Riffenmatt' +--UNION SELECT 3157,'Milken','Milken' +--UNION SELECT 3158,'Guggisberg','Guggisberg' +--UNION SELECT 3172,'Niederwangen BE','Niederwangen b. Bern' +--UNION SELECT 3173,'Oberwangen b. Bern','Oberwangen b. Bern' +--UNION SELECT 3175,'Flamatt','Flamatt' +--UNION SELECT 3176,'Neuenegg','Neuenegg' +--UNION SELECT 3177,'Laupen BE','Laupen BE' +--UNION SELECT 3179,'Kriechenwil','Kriechenwil' +--UNION SELECT 3182,'Ueberstorf','Ueberstorf' +--UNION SELECT 3183,'Albligen','Albligen' +--UNION SELECT 3126,'Gelterfingen','Gelterfingen' +--UNION SELECT 3202,'Frauenkappelen','Frauenkappelen' +--UNION SELECT 3206,'Rizenbach','Rizenbach' +--UNION SELECT 3207,'Wileroltigen','Wileroltigen' +--UNION SELECT 3210,'Kerzers','Kerzers' +--UNION SELECT 3216,'Ried b. Kerzers','Ried b. Kerzers' +--UNION SELECT 3215,'Gempenach','Gempenach' +--UNION SELECT 3214,'Ulmiz','Ulmiz' +--UNION SELECT 3213,'Liebistorf','Liebistorf' +--UNION SELECT 3212,'Gurmels','Gurmels' +--UNION SELECT 3226,'Treiten','Treiten' +--UNION SELECT 3232,'Ins','Ins' +--UNION SELECT 3233,'Tschugg','Tschugg' +--UNION SELECT 3234,'Vinelz','Vinelz' +--UNION SELECT 3235,'Erlach','Erlach' +--UNION SELECT 3236,'Gampelen','Gampelen' +--UNION SELECT 3250,'Lyss','Lyss' +--UNION SELECT 3250,'Lyss Zustellung','Lyss Zustellung' +--UNION SELECT 3252,'Worben','Worben' +--UNION SELECT 3253,'Schnottwil','Schnottwil' +--UNION SELECT 3254,'Messen','Messen' +--UNION SELECT 3255,'Rapperswil BE','Rapperswil BE' +--UNION SELECT 3256,'Dieterswil','Dieterswil' +--UNION SELECT 3257,'Grossaffoltern','Grossaffoltern' +--UNION SELECT 3257,'Ammerzwil BE','Ammerzwil BE' +--UNION SELECT 3262,'Suberg','Suberg' +--UNION SELECT 3266,'Wiler b. Seedorf','Wiler b. Seedorf' +--UNION SELECT 3267,'Seedorf BE','Seedorf BE' +--UNION SELECT 3268,'Lobsigen','Lobsigen' +--UNION SELECT 3270,'Aarberg','Aarberg' +--UNION SELECT 3271,'Radelfingen','Radelfingen b. Aarberg' +--UNION SELECT 3272,'Walperswil','Walperswil' +--UNION SELECT 3273,'Kappelen','Kappelen' +--UNION SELECT 3274,'Hermrigen','Hermrigen' +--UNION SELECT 3280,'Murten','Murten' +--UNION SELECT 3280,'Meyriez','Meyriez' +--UNION SELECT 3282,'Bargen BE','Bargen BE' +--UNION SELECT 3283,'Kallnach','Kallnach' +--UNION SELECT 3285,'Galmiz','Galmiz' +--UNION SELECT 3286,'Muntelier','Muntelier' +--UNION SELECT 3292,'Busswil BE','Busswil BE' +--UNION SELECT 3293,'Dotzigen','Dotzigen' +--UNION SELECT 3296,'Arch','Arch' +--UNION SELECT 3297,'Leuzigen','Leuzigen' +--UNION SELECT 3302,'Moosseedorf','Moosseedorf' +--UNION SELECT 3303,'Jegenstorf','Jegenstorf' +--UNION SELECT 3308,'Grafenried','Grafenried' +--UNION SELECT 3312,'Fraubrunnen','Fraubrunnen' +--UNION SELECT 3314,'Schalunen','Schalunen' +--UNION SELECT 3322,'Mattstetten','Mattstetten' +--UNION SELECT 3324,'Hindelbank','Hindelbank' +--UNION SELECT 3325,'Hettiswil','Hettiswil b. Hindelbank' +--UNION SELECT 3326,'Krauchthal','Krauchthal' +--UNION SELECT 3303,'Zuzwil BE','Zuzwil BE' +--UNION SELECT 3305,'Iffwil','Iffwil' +--UNION SELECT 3306,'Etzelkofen','Etzelkofen' +--UNION SELECT 3307,'Brunnenthal','Brunnenthal' +--UNION SELECT 3309,'Kernenried','Kernenried' +--UNION SELECT 3317,'Limpach','Limpach' +--UNION SELECT 3360,'Herzogenbuchsee','Herzogenbuchsee' +--UNION SELECT 4556,'Aeschi SO','Aeschi SO' +--UNION SELECT 3376,'Graben','Graben' +--UNION SELECT 3372,'Wanzwil','Wanzwil' +--UNION SELECT 3373,'Heimenhausen','Heimenhausen' +--UNION SELECT 3374,'Wangenried','Wangenried' +--UNION SELECT 3365,'Seeberg','Seeberg' +--UNION SELECT 3365,'Grasswil','Grasswil' +--UNION SELECT 3366,'Bettenhausen','Bettenhausen' +--UNION SELECT 3368,'Bleienbach','Bleienbach' +--UNION SELECT 3400,'Burgdorf','Burgdorf' +--UNION SELECT 3400,'Burgdorf 1','Burgdorf 1' +--UNION SELECT 3400,'Burgdorf Zust','Burgdorf Zustellung' +--UNION SELECT 3400,'Burgdorf','Burgdorf' +--UNION SELECT 3400,'Burgdorf','Burgdorf' +--UNION SELECT 3412,'Heimiswil','Heimiswil' +--UNION SELECT 3413,'Kaltacker','Kaltacker' +--UNION SELECT 3414,'Oberburg','Oberburg' +--UNION SELECT 3416,'Affoltern BE','Affoltern im Emmental' +--UNION SELECT 3419,'Biembach','Biembach im Emmental' +--UNION SELECT 3421,'Lyssach','Lyssach' +--UNION SELECT 3422,'Kirchberg BE','Kirchberg BE' +--UNION SELECT 3423,'Ersigen','Ersigen' +--UNION SELECT 3425,'Koppigen','Koppigen' +--UNION SELECT 3426,'Aefligen','Aefligen' +--UNION SELECT 3427,'Utzenstorf','Utzenstorf' +--UNION SELECT 3428,'Wiler b.Utzenstorf','Wiler b. Utzenstorf' +--UNION SELECT 3433,'Schwanden i. E.','Schwanden im Emmental' +--UNION SELECT 3434,'Obergoldbach','Obergoldbach' +--UNION SELECT 3435,'Ramsei','Ramsei' +--UNION SELECT 3438,'Lauperswil','Lauperswil' +--UNION SELECT 3453,'Heimisbach','Heimisbach' +--UNION SELECT 3454,'Sumiswald','Sumiswald' +--UNION SELECT 3456,'Trachselwald','Trachselwald' +--UNION SELECT 3457,'Wasen im Emmental','Wasen im Emmental' +--UNION SELECT 3462,'Weier im Emmental','Weier im Emmental' +--UNION SELECT 3472,'Wynigen','Wynigen' +--UNION SELECT 3473,'Alchenstorf','Alchenstorf' +--UNION SELECT 3475,'Riedtwil','Riedtwil' +--UNION SELECT 3475,'Hermiswil','Hermiswil' +--UNION SELECT 3476,'Oschwand','Oschwand' +--UNION SELECT 3503,'Gysenstein','Gysenstein' +--UNION SELECT 3507,'Biglen','Biglen' +--UNION SELECT 3508,'Arni BE','Arni BE' +--UNION SELECT 3510,'Konolfingen','Konolfingen' +--UNION SELECT 3512,'Walkringen','Walkringen' +--UNION SELECT 3513,'Bigenthal','Bigenthal' +--UNION SELECT 3415,'Schafhausen i. E.','Schafhausen im Emmental' +--UNION SELECT 3672,'Oberdiessbach','Oberdiessbach' +--UNION SELECT 3672,'Aeschlen','Aeschlen b. Oberdiessbach' +--UNION SELECT 3673,'Linden','Linden' +--UNION SELECT 3674,'Bleiken','Bleiken b. Oberdiessbach' +--UNION SELECT 3671,'Brenzikofen','Brenzikofen' +--UNION SELECT 3531,'Oberthal','Oberthal' +--UNION SELECT 3533,'Bowil','Bowil' +--UNION SELECT 3534,'Signau','Signau' +--UNION SELECT 3536,'Aeschau','Aeschau' +--UNION SELECT 3537,'Eggiwil','Eggiwil' +--UNION SELECT 3543,'Emmenmatt','Emmenmatt' +--UNION SELECT 3550,'Langnau i. E.','Langnau im Emmental' +--UNION SELECT 3551,'Oberfrittenbach','Oberfrittenbach' +--UNION SELECT 3553,'Gohl','Gohl' +--UNION SELECT 3555,'Trubschachen','Trubschachen' +--UNION SELECT 3556,'Trub','Trub' +--UNION SELECT 3557,'Fankhaus Trub','Fankhaus Trub' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 3600,'Thun 2 Zustellung','Thun 2 Zustellung' +--UNION SELECT 3600,'Thun Aarezentrum','Thun Aarezentrum' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 3617,'Fahrni b. Thun','Fahrni b. Thun' +--UNION SELECT 3619,'Eriz','Eriz' +--UNION SELECT 3622,'Homberg b. Thun','Homberg b. Thun' +--UNION SELECT 3635,'Uebeschi','Uebeschi' +--UNION SELECT 3612,'Steffisburg','Steffisburg' +--UNION SELECT 3613,'Steffisburg','Steffisburg' +--UNION SELECT 3614,'Unterlangenegg','Unterlangenegg' +--UNION SELECT 3615,'Heimenschwand','Heimenschwand' +--UNION SELECT 3616,'Schwarzenegg','Schwarzenegg' +--UNION SELECT 3623,'Teuffenthal BE','Teuffenthal b. Thun' +--UNION SELECT 3624,'Goldiwil Thun','Goldiwil Thun' +--UNION SELECT 3625,'Heiligenschwendi','Heiligenschwendi' +--UNION SELECT 3627,'Heimberg','Heimberg' +--UNION SELECT 3633,'Amsoldingen','Amsoldingen' +--UNION SELECT 3634,'Thierachern','Thierachern' +--UNION SELECT 3638,'Blumenstein','Blumenstein' +--UNION SELECT 3638,'Pohlern','Pohlern' +--UNION SELECT 3645,'Gwatt Thun','Gwatt Thun' +--UNION SELECT 3646,'Einigen','Einigen' +--UNION SELECT 3647,'Reutigen','Reutigen' +--UNION SELECT 3652,'Hilterfingen','Hilterfingen' +--UNION SELECT 3653,'Oberhofen Thun''see','Oberhofen am Thunersee' +--UNION SELECT 3654,'Gunten','Gunten' +--UNION SELECT 3655,'Sigriswil','Sigriswil' +--UNION SELECT 3656,'Tschingel','Tschingel ob Gunten' +--UNION SELECT 3656,'Aeschlen ob Gunten','Aeschlen ob Gunten' +--UNION SELECT 3657,'Schwanden Sigrisw','Schwanden Sigriswil' +--UNION SELECT 3658,'Merligen','Merligen' +--UNION SELECT 3700,'Spiez','Spiez' +--UNION SELECT 3702,'Hondrich','Hondrich' +--UNION SELECT 3703,'Aeschi b. Spiez','Aeschi b. Spiez' +--UNION SELECT 3703,'Aeschiried','Aeschiried' +--UNION SELECT 3704,'Krattigen','Krattigen' +--UNION SELECT 3705,'Faulensee','Faulensee' +--UNION SELECT 3706,'Leissigen','Leissigen' +--UNION SELECT 3711,'Emdthal','Emdthal' +--UNION SELECT 3713,'Reichenbach i. K.','Reichenbach im Kandertal' +--UNION SELECT 3714,'Frutigen','Frutigen' +--UNION SELECT 3714,'Wengi b. Frutigen','Wengi b. Frutigen' +--UNION SELECT 3715,'Adelboden','Adelboden' +--UNION SELECT 3716,'Kandergrund','Kandergrund' +--UNION SELECT 3717,'Blausee-Mitholz','Blausee-Mitholz' +--UNION SELECT 3718,'Kandersteg','Kandersteg' +--UNION SELECT 3722,'Scharnachtal','Scharnachtal' +--UNION SELECT 3723,'Kiental','Kiental' +--UNION SELECT 3724,'Ried Frutigen','Ried Frutigen' +--UNION SELECT 3725,'Achseten','Achseten' +--UNION SELECT 3752,'Wimmis','Wimmis' +--UNION SELECT 3753,'Oey','Oey' +--UNION SELECT 3754,'Diemtigen','Diemtigen' +--UNION SELECT 3755,'Horboden','Horboden' +--UNION SELECT 3757,'Schwenden','Schwenden im Diemtigtal' +--UNION SELECT 3758,'Latterbach','Latterbach' +--UNION SELECT 3762,'Erlenbach i. S.','Erlenbach im Simmental' +--UNION SELECT 3764,'Weissenburg','Weissenburg' +--UNION SELECT 3765,'Oberwil i. S.','Oberwil im Simmental' +--UNION SELECT 3766,'Boltigen','Boltigen' +--UNION SELECT 3770,'Zweisimmen','Zweisimmen' +--UNION SELECT 3771,'Blankenburg','Blankenburg' +--UNION SELECT 3772,'St. Stephan','St. Stephan' +--UNION SELECT 3773,'MattenSt.Stephan','Matten St. Stephan' +--UNION SELECT 3775,'Lenk im Simmental','Lenk im Simmental' +--UNION SELECT 3776,'Oeschseite','Oeschseite' +--UNION SELECT 3780,'Gstaad','Gstaad' +--UNION SELECT 3781,'Turbach','Turbach' +--UNION SELECT 3782,'Lauenen b. Gstaad','Lauenen b. Gstaad' +--UNION SELECT 3783,'Grund b. Gstaad','Grund b. Gstaad' +--UNION SELECT 3784,'Feutersoey','Feutersoey' +--UNION SELECT 3785,'Gsteig b. Gstaad','Gsteig b. Gstaad' +--UNION SELECT 3792,'Saanen','Saanen' +--UNION SELECT 3800,'Interlaken','Interlaken' +--UNION SELECT 3800,'Unterseen','Unterseen' +--UNION SELECT 3800,'Matten b. Interl','Matten b. Interlaken' +--UNION SELECT 3801,'Jungfraujoch','Jungfraujoch' +--UNION SELECT 3803,'Beatenberg','Beatenberg' +--UNION SELECT 3804,'Habkern','Habkern' +--UNION SELECT 3805,'Goldswil','Goldswil b. Interlaken' +--UNION SELECT 3807,'Iseltwald','Iseltwald' +--UNION SELECT 3812,'Wilderswil','Wilderswil' +--UNION SELECT 3813,'Saxeten','Saxeten' +--UNION SELECT 3814,'Gsteigwiler','Gsteigwiler' +--UNION SELECT 3816,'Burglauenen','Burglauenen' +--UNION SELECT 3818,'Grindelwald','Grindelwald' +--UNION SELECT 3822,'Lauterbrunnen','Lauterbrunnen' +--UNION SELECT 3822,'Isenfluh','Isenfluh' +--UNION SELECT 3823,'Wengen','Wengen' +--UNION SELECT 3824,'Stechelberg','Stechelberg' +--UNION SELECT 3826,'Gimmelwald','Gimmelwald' +--UNION SELECT 3852,'Ringgenberg BE','Ringgenberg BE' +--UNION SELECT 3853,'Niederried Interl','Niederried b. Interlaken' +--UNION SELECT 3854,'Oberried Brienz','Oberried am Brienzersee' +--UNION SELECT 3855,'Brienz BE','Brienz BE' +--UNION SELECT 3855,'Axalp','Axalp' +--UNION SELECT 3856,'Brienzwiler','Brienzwiler' +--UNION SELECT 3857,'Unterbach BE','Unterbach BE' +--UNION SELECT 3858,'Hofstetten BE','Hofstetten b. Brienz' +--UNION SELECT 3860,'Meiringen','Meiringen' +--UNION SELECT 3860,'Rosenlaui','Rosenlaui' +--UNION SELECT 3862,'Innertkirchen','Innertkirchen' +--UNION SELECT 3863,'Gadmen','Gadmen' +--UNION SELECT 3864,'Guttannen','Guttannen' +--UNION SELECT 3900,'Brig','Brig' +--UNION SELECT 3900,'Gamsen','Gamsen' +--UNION SELECT 3949,'Hohtenn','Hohtenn' +--UNION SELECT 3903,'Birgisch','Birgisch' +--UNION SELECT 3903,'Mund','Mund' +--UNION SELECT 3914,'Blatten b. Naters','Blatten b. Naters' +--UNION SELECT 3914,'Belalp','Belalp' +--UNION SELECT 3913,'Rosswald','Rosswald' +--UNION SELECT 3911,'Ried-Brig','Ried-Brig' +--UNION SELECT 3912,'Termen','Termen' +--UNION SELECT 3901,'Rothwald','Rothwald' +--UNION SELECT 3907,'Simplon Hospiz','Simplon Hospiz' +--UNION SELECT 3907,'Simplon Dorf','Simplon Dorf' +--UNION SELECT 3907,'Gabi Simplon','Gabi Simplon' +--UNION SELECT 3907,'Gondo','Gondo' +--UNION SELECT 3922,'Eisten','Eisten' +--UNION SELECT 3908,'Saas-Balen','Saas-Balen' +--UNION SELECT 3910,'Saas-Grund','Saas-Grund' +--UNION SELECT 3902,'Glis','Glis' +--UNION SELECT 3917,'Goppenstein','Goppenstein' +--UNION SELECT 3916,'Ferden','Ferden' +--UNION SELECT 3917,'Kippel','Kippel' +--UNION SELECT 3904,'Naters','Naters' +--UNION SELECT 3905,'Saas-Almagell','Saas-Almagell' +--UNION SELECT 3906,'Saas-Fee','Saas-Fee' +--UNION SELECT 3920,'Zermatt','Zermatt' +--UNION SELECT 3926,'Embd','Embd' +--UNION SELECT 3927,'Herbriggen','Herbriggen' +--UNION SELECT 3928,'Randa','Randa' +--UNION SELECT 3922,'Stalden VS','Stalden VS' +--UNION SELECT 3922,'Kalpetran','Kalpetran' +--UNION SELECT 3924,'St. Niklaus VS','St. Niklaus VS' +--UNION SELECT 3930,'Visp','Visp' +--UNION SELECT 3942,'St. German','St. German' +--UNION SELECT 3933,'Staldenried','Staldenried' +--UNION SELECT 3937,'Baltschieder','Baltschieder' +--UNION SELECT 3938,'Ausserberg','Ausserberg' +--UNION SELECT 3939,'Eggerberg','Eggerberg' +--UNION SELECT 3930,'Eyholz','Eyholz' +--UNION SELECT 3931,'Lalden','Lalden' +--UNION SELECT 3932,'Visperterminen','Visperterminen' +--UNION SELECT 3934,'Zeneggen','Zeneggen' +--UNION SELECT 3943,'Eischoll','Eischoll' +--UNION SELECT 3947,'Ergisch','Ergisch' +--UNION SELECT 3948,'Unterems','Unterems' +--UNION SELECT 3946,'Gruben','Gruben' +--UNION SELECT 3948,'Oberems','Oberems' +--UNION SELECT 3951,'Agarn','Agarn' +--UNION SELECT 3955,'Albinen','Albinen' +--UNION SELECT 3956,'Guttet-Feschel','Guttet-Feschel' +--UNION SELECT 3957,'Erschmatt','Erschmatt' +--UNION SELECT 3953,'Varen','Varen' +--UNION SELECT 3978,'Flanthey','Flanthey' +--UNION SELECT 1978,'Lens','Lens' +--UNION SELECT 1977,'Icogne','Icogne' +--UNION SELECT 3942,'Raron','Raron' +--UNION SELECT 3942,'Niedergesteln','Niedergesteln' +--UNION SELECT 3945,'Gampel','Gampel' +--UNION SELECT 3946,'Turtmann','Turtmann' +--UNION SELECT 3952,'Susten','Susten' +--UNION SELECT 3953,'Leuk Stadt','Leuk Stadt' +--UNION SELECT 3953,'Inden','Inden' +--UNION SELECT 3954,'Leukerbad','Leukerbad' +--UNION SELECT 3970,'Salgesch','Salgesch' +--UNION SELECT 3977,'Granges VS','Granges VS' +--UNION SELECT 3960,'Sierre','Sierre' +--UNION SELECT 3960,'Loc','Loc' +--UNION SELECT 3971,'Chermignon','Chermignon' +--UNION SELECT 3971,'Chermignon-Bas','Chermignon-d''en-Bas' +--UNION SELECT 3971,'Ollon VS','Ollon VS' +--UNION SELECT 3974,'Mollens VS','Mollens VS' +--UNION SELECT 3975,'Randogne','Randogne' +--UNION SELECT 3961,'Vissoie','Vissoie' +--UNION SELECT 3961,'St-Luc','St-Luc' +--UNION SELECT 3961,'Chandolin','Chandolin' +--UNION SELECT 3961,'Ayer','Ayer' +--UNION SELECT 3961,'Zinal','Zinal' +--UNION SELECT 3961,'Grimentz','Grimentz' +--UNION SELECT 3967,'Vercorin','Vercorin' +--UNION SELECT 3963,'Montana','Montana' +--UNION SELECT 3963,'Crans-Montana','Crans-Montana' +--UNION SELECT 3960,'Muraz Sierre','Muraz Sierre' +--UNION SELECT 3965,'Chippis','Chippis' +--UNION SELECT 3966,'Chalais','Chalais' +--UNION SELECT 3968,'Veyras','Veyras' +--UNION SELECT 3982,'Bitsch','Bitsch' +--UNION SELECT 3993,'Grengiols','Grengiols' +--UNION SELECT 3994,'Lax','Lax' +--UNION SELECT 3997,'Bellwald','Bellwald' +--UNION SELECT 3989,'Niederwald','Niederwald' +--UNION SELECT 3989,'Blitzingen','Blitzingen' +--UNION SELECT 3989,'Biel VS','Biel VS' +--UNION SELECT 3998,'Gluringen','Gluringen' +--UNION SELECT 3998,'Reckingen VS','Reckingen VS' +--UNION SELECT 3985,'Geschinen','Geschinen' +--UNION SELECT 3988,'Obergesteln','Obergesteln' +--UNION SELECT 3999,'Oberwald','Oberwald' +--UNION SELECT 3987,'Riederalp','Riederalp' +--UNION SELECT 3991,'Betten','Betten' +--UNION SELECT 3992,'Bettmeralp','Bettmeralp' +--UNION SELECT 3995,'Ernen','Ernen' +--UNION SELECT 3996,'Binn','Binn' +--UNION SELECT 3984,'Fiesch','Fiesch' +--UNION SELECT 3988,'Ulrichen','Ulrichen' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel 2 Zust','Basel 2 Zustellung' +--UNION SELECT 4000,'Basel Dist Ba','Basel Dist Ba' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4002,'Basel 2 Annahme','Basel 2 Annahme' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4021,'Basel Sort','Basel Sortierung' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4101,'Bruderholz','Bruderholz' +--UNION SELECT 4102,'Binningen','Binningen' +--UNION SELECT 4102,'Binningen 1','Binningen 1' +--UNION SELECT 4102,'Binningen Gorenm.','Binningen Gorenmatt' +--UNION SELECT 4103,'Bottmingen','Bottmingen' +--UNION SELECT 4104,'Oberwil BL','Oberwil BL' +--UNION SELECT 4105,'Biel-Benken BL','Biel-Benken BL' +--UNION SELECT 4106,'Therwil','Therwil' +--UNION SELECT 4107,'Ettingen','Ettingen' +--UNION SELECT 4108,'Witterswil','Witterswil' +--UNION SELECT 4114,'Hofstetten SO','Hofstetten SO' +--UNION SELECT 4115,'Mariastein','Mariastein' +--UNION SELECT 4116,'Metzerlen','Metzerlen' +--UNION SELECT 4117,'Burg im Leimental','Burg im Leimental' +--UNION SELECT 4118,'Rodersdorf','Rodersdorf' +--UNION SELECT 4123,'Allschwil','Allschwil' +--UNION SELECT 4123,'Allschwil 1','Allschwil 1' +--UNION SELECT 4123,'Allschwil Dorf','Allschwil Dorf' +--UNION SELECT 4123,'Allschwil Lindenpl','Allschwil Lindenplatz' +--UNION SELECT 4125,'Riehen','Riehen' +--UNION SELECT 4125,'Riehen 1','Riehen 1' +--UNION SELECT 4125,'Riehen Rauracher','Riehen Rauracher' +--UNION SELECT 4126,'Bettingen','Bettingen' +--UNION SELECT 4127,'Birsfelden','Birsfelden' +--UNION SELECT 4132,'Muttenz','Muttenz' +--UNION SELECT 4132,'Muttenz 1','Muttenz 1' +--UNION SELECT 4132,'Muttenz Lutzert','Muttenz Lutzert' +--UNION SELECT 4133,'Pratteln','Pratteln' +--UNION SELECT 4133,'Pratteln 1','Pratteln 1' +--UNION SELECT 4140,'Pratteln CIRCLE','Pratteln CIRCLE' +--UNION SELECT 4143,'Dornach','Dornach' +--UNION SELECT 4144,'Arlesheim','Arlesheim' +--UNION SELECT 4145,'Gempen','Gempen' +--UNION SELECT 4146,'Hochwald','Hochwald' +--UNION SELECT 4147,'Aesch BL','Aesch BL' +--UNION SELECT 4148,'Pfeffingen','Pfeffingen' +--UNION SELECT 4153,'Reinach BL','Reinach BL' +--UNION SELECT 4153,'Reinach BL 1','Reinach BL 1' +--UNION SELECT 4153,'Reinach BL Surbaum','Reinach BL Surbaum' +--UNION SELECT 4202,'Duggingen','Duggingen' +--UNION SELECT 4203,'Grellingen','Grellingen' +--UNION SELECT 4206,'Seewen SO','Seewen SO' +--UNION SELECT 4207,'Bretzwil','Bretzwil' +--UNION SELECT 4208,'Nunningen','Nunningen' +--UNION SELECT 4222,'Zwingen','Zwingen' +--UNION SELECT 4225,'Brislach','Brislach' +--UNION SELECT 4226,'Breitenbach','Breitenbach' +--UNION SELECT 4228,'Erschwil','Erschwil' +--UNION SELECT 4242,'Laufen','Laufen' +--UNION SELECT 4243,'Dittingen','Dittingen' +--UNION SELECT 4204,'Himmelried','Himmelried' +--UNION SELECT 4223,'Blauen','Blauen' +--UNION SELECT 4224,'Nenzlingen','Nenzlingen' +--UNION SELECT 4229,'Beinwil SO','Beinwil SO' +--UNION SELECT 4232,'Fehren','Fehren' +--UNION SELECT 4233,'Meltingen','Meltingen' +--UNION SELECT 4234,'Zullwil','Zullwil' +--UNION SELECT 4246,'Wahlen b. Laufen','Wahlen b. Laufen' +--UNION SELECT 4247,'Grindel','Grindel' +--UNION SELECT 4253,'Liesberg','Liesberg' +--UNION SELECT 4254,'Liesberg Dorf','Liesberg Dorf' +--UNION SELECT 4302,'Augst BL','Augst BL' +--UNION SELECT 4303,'Kaiseraugst','Kaiseraugst' +--UNION SELECT 4304,'Giebenach','Giebenach' +--UNION SELECT 4305,'Olsberg','Olsberg' +--UNION SELECT 4310,'Rheinfelden','Rheinfelden' +--UNION SELECT 4310,'Rheinfelden 1','Rheinfelden 1' +--UNION SELECT 4310,'Rheinfelden 2','Rheinfelden 2' +--UNION SELECT 4312,'Magden','Magden' +--UNION SELECT 4314,'Zeiningen','Zeiningen' +--UNION SELECT 4315,'Zuzgen','Zuzgen' +--UNION SELECT 4316,'Hellikon','Hellikon' +--UNION SELECT 4317,'Wegenstetten','Wegenstetten' +--UNION SELECT 4322,'Mumpf','Mumpf' +--UNION SELECT 4323,'Wallbach','Wallbach' +--UNION SELECT 4324,'Obermumpf','Obermumpf' +--UNION SELECT 4325,'Schupfart','Schupfart' +--UNION SELECT 4332,'Stein AG','Stein AG' +--UNION SELECT 4334,'Sisseln AG','Sisseln AG' +--UNION SELECT 5080,'Laufenburg','Laufenburg' +--UNION SELECT 5082,'Kaisten','Kaisten' +--UNION SELECT 5083,'Ittenthal','Ittenthal' +--UNION SELECT 5084,'Rheinsulz','Rheinsulz' +--UNION SELECT 5085,'Sulz AG','Sulz AG' +--UNION SELECT 5275,'Etzgen','Etzgen' +--UNION SELECT 5274,'Mettau','Mettau' +--UNION SELECT 5273,'Oberhofen AG','Oberhofen AG' +--UNION SELECT 5272,'Gansingen','Gansingen' +--UNION SELECT 5276,'Wil AG','Wil AG' +--UNION SELECT 5277,'Hottwil','Hottwil' +--UNION SELECT 5326,'Schwaderloch','Schwaderloch' +--UNION SELECT 5325,'Leibstadt','Leibstadt' +--UNION SELECT 5324,'Full-Reuenthal','Full-Reuenthal' +--UNION SELECT 4402,'Frenkendorf','Frenkendorf' +--UNION SELECT 4410,'Liestal','Liestal' +--UNION SELECT 4410,'Liestal Kaserne','Liestal Kaserne' +--UNION SELECT 4411,'Seltisberg','Seltisberg' +--UNION SELECT 4412,'Nuglar','Nuglar' +--UNION SELECT 4415,'Lausen','Lausen' +--UNION SELECT 4416,'Bubendorf','Bubendorf' +--UNION SELECT 4417,'Ziefen','Ziefen' +--UNION SELECT 4418,'Reigoldswil','Reigoldswil' +--UNION SELECT 4419,'Lupsingen','Lupsingen' +--UNION SELECT 4421,'St. Pantaleon','St. Pantaleon' +--UNION SELECT 4422,'Arisdorf','Arisdorf' +--UNION SELECT 4423,'Hersberg','Hersberg' +--UNION SELECT 4424,'Arboldswil','Arboldswil' +--UNION SELECT 4425,'Titterten','Titterten' +--UNION SELECT 4426,'Lauwil','Lauwil' +--UNION SELECT 4431,'Bennwil','Bennwil' +--UNION SELECT 4432,'Lampenberg','Lampenberg' +--UNION SELECT 4433,'Ramlinsburg','Ramlinsburg' +--UNION SELECT 4435,'Niederdorf','Niederdorf' +--UNION SELECT 4436,'Oberdorf BL','Oberdorf BL' +--UNION SELECT 4437,'Waldenburg','Waldenburg' +--UNION SELECT 4438,'Langenbruck','Langenbruck' +--UNION SELECT 4442,'Diepflingen','Diepflingen' +--UNION SELECT 4443,'Wittinsburg','Wittinsburg' +--UNION SELECT 4446,'Buckten','Buckten' +--UNION SELECT 4450,'Sissach','Sissach' +--UNION SELECT 4451,'Wintersingen','Wintersingen' +--UNION SELECT 4452,'Itingen','Itingen' +--UNION SELECT 4453,'Nusshof','Nusshof' +--UNION SELECT 4455,'Zunzgen','Zunzgen' +--UNION SELECT 4456,'Tenniken','Tenniken' +--UNION SELECT 4457,'Diegten','Diegten' +--UNION SELECT 4458,'Eptingen','Eptingen' +--UNION SELECT 4460,'Gelterkinden','Gelterkinden' +--UNION SELECT 4465,'Hemmiken','Hemmiken' +--UNION SELECT 4469,'Anwil','Anwil' +--UNION SELECT 4462,'Rickenbach BL','Rickenbach BL' +--UNION SELECT 4463,'Buus','Buus' +--UNION SELECT 4464,'Maisprach','Maisprach' +--UNION SELECT 4466,'Ormalingen','Ormalingen' +--UNION SELECT 4467,'Rothenfluh','Rothenfluh' +--UNION SELECT 4468,'Kienberg','Kienberg' +--UNION SELECT 4492,'Tecknau','Tecknau' +--UNION SELECT 4493,'Wenslingen','Wenslingen' +--UNION SELECT 4494,'Oltingen','Oltingen' +--UNION SELECT 4495,'Zeglingen','Zeglingen' +--UNION SELECT 4496,'Kilchberg BL','Kilchberg BL' +--UNION SELECT 4500,'Solothurn','Solothurn' +--UNION SELECT 4500,'Solothurn 1','Solothurn 1' +--UNION SELECT 4500,'Solothurn 1 Zust','Solothurn 1 Zustellung' +--UNION SELECT 4501,'Solothurn Bahnhof','Solothurn Bahnhof' +--UNION SELECT 4500,'Solothurn','Solothurn' +--UNION SELECT 4500,'Solothurn','Solothurn' +--UNION SELECT 4515,'Weissenstein','Weissenstein b. Solothurn' +--UNION SELECT 4523,'Niederwil SO','Niederwil SO' +--UNION SELECT 4535,'Hubersdorf','Hubersdorf' +--UNION SELECT 4539,'Rumisberg','Rumisberg' +--UNION SELECT 4539,'Farnern','Farnern' +--UNION SELECT 4557,'Horriwil','Horriwil' +--UNION SELECT 4558,'Hersiwil','Hersiwil' +--UNION SELECT 4512,'Bellach','Bellach' +--UNION SELECT 4513,'Langendorf','Langendorf' +--UNION SELECT 4514,'Lommiswil','Lommiswil' +--UNION SELECT 4515,'Oberdorf SO','Oberdorf SO' +--UNION SELECT 4528,'Zuchwil','Zuchwil' +--UNION SELECT 4532,'Feldbrunnen','Feldbrunnen' +--UNION SELECT 4533,'Riedholz','Riedholz' +--UNION SELECT 4534,'Flumenthal','Flumenthal' +--UNION SELECT 4536,'Attiswil','Attiswil' +--UNION SELECT 4537,'Wiedlisbach','Wiedlisbach' +--UNION SELECT 4538,'Oberbipp','Oberbipp' +--UNION SELECT 4552,'Derendingen','Derendingen' +--UNION SELECT 4553,'Subingen','Subingen' +--UNION SELECT 4554,'Etziken','Etziken' +--UNION SELECT 3375,'Inkwil','Inkwil' +--UNION SELECT 4562,'Biberist','Biberist' +--UNION SELECT 4563,'Gerlafingen','Gerlafingen' +--UNION SELECT 4564,'Obergerlafingen','Obergerlafingen' +--UNION SELECT 4564,'Zielebach','Zielebach' +--UNION SELECT 4565,'Recherswil','Recherswil' +--UNION SELECT 4566,'Kriegstetten','Kriegstetten' +--UNION SELECT 4586,'Kyburg-Buchegg','Kyburg-Buchegg' +--UNION SELECT 4579,'Gossliwil','Gossliwil' +--UNION SELECT 4578,'Bibern SO','Bibern SO' +--UNION SELECT 4571,'Ichertswil','Ichertswil' +--UNION SELECT 4576,'Tscheppach','Tscheppach' +--UNION SELECT 4577,'Hessigkofen','Hessigkofen' +--UNION SELECT 4585,'Biezwil','Biezwil' +--UNION SELECT 4587,'Aetingen','Aetingen' +--UNION SELECT 4588,'Unterramsern','Unterramsern' +--UNION SELECT 4588,'Oberramsern','Oberramsern' +--UNION SELECT 4574,'Nennigkofen','Nennigkofen' +--UNION SELECT 4600,'Olten','Olten' +--UNION SELECT 4600,'Olten 1','Olten 1' +--UNION SELECT 4600,'Olten 2 Zustellung','Olten 2 Zustellung' +--UNION SELECT 4612,'Wangen b. Olten','Wangen b. Olten' +--UNION SELECT 4613,'Rickenbach SO','Rickenbach SO' +--UNION SELECT 4616,'Kappel SO','Kappel SO' +--UNION SELECT 4617,'Gunzgen','Gunzgen' +--UNION SELECT 4618,'Boningen','Boningen' +--UNION SELECT 4622,'Egerkingen','Egerkingen' +--UNION SELECT 4623,'Neuendorf','Neuendorf' +--UNION SELECT 4625,'Oberbuchsiten','Oberbuchsiten' +--UNION SELECT 4626,'Niederbuchsiten','Niederbuchsiten' +--UNION SELECT 4632,'Trimbach','Trimbach' +--UNION SELECT 4652,'Winznau','Winznau' +--UNION SELECT 4654,'Lostorf','Lostorf' +--UNION SELECT 4655,'Rohr b. Olten','Rohr b. Olten' +--UNION SELECT 4656,'Starrkirch-Wil','Starrkirch-Wil' +--UNION SELECT 4657,'Dulliken','Dulliken' +--UNION SELECT 4663,'Aarburg','Aarburg' +--UNION SELECT 4665,'Oftringen','Oftringen' +--UNION SELECT 4665,'Oftringen 1','Oftringen 1' +--UNION SELECT 4665,'Oftringen 2','Oftringen 2' +--UNION SELECT 4615,'Allerheiligenberg','Allerheiligenberg' +--UNION SELECT 4633,'Hauenstein','Hauenstein' +--UNION SELECT 4634,'Wisen SO','Wisen SO' +--UNION SELECT 4702,'Oensingen','Oensingen' +--UNION SELECT 4703,'Kestenholz','Kestenholz' +--UNION SELECT 4704,'Niederbipp','Niederbipp' +--UNION SELECT 3380,'Wangen an der Aare','Wangen an der Aare' +--UNION SELECT 3377,'Walliswil b.Wangen','Walliswil b. Wangen' +--UNION SELECT 4543,'Deitingen','Deitingen' +--UNION SELECT 4542,'Luterbach','Luterbach' +--UNION SELECT 4710,'Balsthal','Balsthal' +--UNION SELECT 4714,'Aedermannsdorf','Aedermannsdorf' +--UNION SELECT 4715,'Herbetswil','Herbetswil' +--UNION SELECT 4719,'Ramiswil','Ramiswil' +--UNION SELECT 4712,'Laupersdorf','Laupersdorf' +--UNION SELECT 4713,'Matzendorf','Matzendorf' +--UNION SELECT 4716,'Welschenrohr','Welschenrohr' +--UNION SELECT 4718,'Holderbank SO','Holderbank SO' +--UNION SELECT 4800,'Zofingen','Zofingen' +--UNION SELECT 4801,'Zofingen','Zofingen Ringier AG' +--UNION SELECT 4802,'Strengelbach','Strengelbach' +--UNION SELECT 4803,'Vordemwald','Vordemwald' +--UNION SELECT 4805,'Brittnau','Brittnau' +--UNION SELECT 4806,'Wikon','Wikon' +--UNION SELECT 4813,'Uerkheim','Uerkheim' +--UNION SELECT 4814,'Bottenwil','Bottenwil' +--UNION SELECT 4852,'Rothrist','Rothrist' +--UNION SELECT 4853,'Murgenthal','Murgenthal' +--UNION SELECT 4629,'Fulenbach','Fulenbach' +--UNION SELECT 4628,'Wolfwil','Wolfwil' +--UNION SELECT 4853,'Riken AG','Riken AG' +--UNION SELECT 4900,'Langenthal','Langenthal' +--UNION SELECT 4900,'Langenthal 1','Langenthal 1' +--UNION SELECT 4900,'Langenthal','Langenthal' +--UNION SELECT 4912,'Aarwangen','Aarwangen' +--UNION SELECT 4913,'Bannwil','Bannwil' +--UNION SELECT 4914,'Roggwil BE','Roggwil BE' +--UNION SELECT 4915,'St. Urban','St. Urban' +--UNION SELECT 4916,'Untersteckholz','Untersteckholz' +--UNION SELECT 4917,'Melchnau','Melchnau' +--UNION SELECT 4917,'Busswil b.Melchnau','Busswil b. Melchnau' +--UNION SELECT 4955,'Gondiswil','Gondiswil' +--UNION SELECT 4919,'Reisiswil','Reisiswil' +--UNION SELECT 4923,'Wynau','Wynau' +--UNION SELECT 4924,'Obersteckholz','Obersteckholz' +--UNION SELECT 4932,'Lotzwil','Lotzwil' +--UNION SELECT 4934,'Madiswil','Madiswil' +--UNION SELECT 4935,'Leimiswil','Leimiswil' +--UNION SELECT 4936,'Kleindietwil','Kleindietwil' +--UNION SELECT 4937,'Ursenbach','Ursenbach' +--UNION SELECT 4938,'Rohrbach','Rohrbach' +--UNION SELECT 4942,'Walterswil BE','Walterswil BE' +--UNION SELECT 4943,'Oeschenbach','Oeschenbach' +--UNION SELECT 4944,'Auswil','Auswil' +--UNION SELECT 4938,'Rohrbachgraben','Rohrbachgraben' +--UNION SELECT 4950,'Huttwil','Huttwil' +--UNION SELECT 4952,'Eriswil','Eriswil' +--UNION SELECT 4953,'Schwarzenbach BE','Schwarzenbach Huttwil' +--UNION SELECT 4954,'Wyssachen','Wyssachen' +--UNION SELECT 5000,'Aarau','Aarau' +--UNION SELECT 5000,'Aarau 1','Aarau 1' +--UNION SELECT 5000,'Aarau 1 Zustellung','Aarau 1 Zustellung' +--UNION SELECT 5000,'Aarau Postauto AG','Aarau Postauto Aargau' +--UNION SELECT 5000,'Aarau Kaserne','Aarau Kaserne' +--UNION SELECT 5000,'Aarau 1','Aarau 1' +--UNION SELECT 5000,'Aarau','Aarau' +--UNION SELECT 5014,'Gretzenbach','Gretzenbach' +--UNION SELECT 5015,'Erlinsbach SO','Erlinsbach SO' +--UNION SELECT 5017,'Barmelweid','Barmelweid' +--UNION SELECT 5022,'Rombach','Rombach' +--UNION SELECT 5023,'Biberstein','Biberstein' +--UNION SELECT 5025,'Asp','Asp' +--UNION SELECT 5027,'Herznach','Herznach' +--UNION SELECT 5028,'Ueken','Ueken' +--UNION SELECT 5000,'Aarau Rohr','Aarau Rohr' +--UNION SELECT 5033,'Buchs AG','Buchs AG' +--UNION SELECT 5034,'Suhr','Suhr' +--UNION SELECT 5035,'Unterentfelden','Unterentfelden' +--UNION SELECT 5036,'Oberentfelden','Oberentfelden' +--UNION SELECT 5037,'Muhen','Muhen' +--UNION SELECT 5042,'Hirschthal','Hirschthal' +--UNION SELECT 5043,'Holziken','Holziken' +--UNION SELECT 5044,'Schlossrued','Schlossrued' +--UNION SELECT 5046,'Schmiedrued','Schmiedrued' +--UNION SELECT 5046,'Walde AG','Walde AG' +--UNION SELECT 5053,'Staffelbach','Staffelbach' +--UNION SELECT 5054,'Kirchleerau-Moosle','Kirchleerau-Moosleerau' +--UNION SELECT 5054,'Kirchleerau','Kirchleerau' +--UNION SELECT 5054,'Moosleerau','Moosleerau' +--UNION SELECT 5056,'Attelwil','Attelwil' +--UNION SELECT 5057,'Reitnau','Reitnau' +--UNION SELECT 5102,'Rupperswil','Rupperswil' +--UNION SELECT 5103,'Wildegg','Wildegg' +--UNION SELECT 5105,'Auenstein','Auenstein' +--UNION SELECT 5106,'Veltheim AG','Veltheim AG' +--UNION SELECT 5107,'Schinznach Dorf','Schinznach Dorf' +--UNION SELECT 5108,'Oberflachs','Oberflachs' +--UNION SELECT 5112,'Thalheim AG','Thalheim AG' +--UNION SELECT 5113,'Holderbank AG','Holderbank AG' +--UNION SELECT 5116,'Schinznach Bad','Schinznach Bad' +--UNION SELECT 5245,'Habsburg','Habsburg' +--UNION SELECT 5246,'Scherz','Scherz' +--UNION SELECT 5200,'Brugg AG','Brugg AG' +--UNION SELECT 5200,'Brugg AG 1','Brugg AG 1' +--UNION SELECT 5210,'Windisch','Windisch' +--UNION SELECT 5200,'Brugg AG Kaserne','Brugg AG Kaserne' +--UNION SELECT 5200,'Brugg AG','Brugg AG' +--UNION SELECT 5212,'Hausen AG','Hausen AG' +--UNION SELECT 5213,'Villnachern','Villnachern' +--UNION SELECT 5222,'Umiken','Umiken' +--UNION SELECT 5223,'Riniken','Riniken' +--UNION SELECT 5233,'Stilli','Stilli' +--UNION SELECT 5234,'Villigen','Villigen' +--UNION SELECT 5236,'Remigen','Remigen' +--UNION SELECT 5242,'Birr-Lupfig','Birr-Lupfig' +--UNION SELECT 5242,'Birr','Birr' +--UNION SELECT 5242,'Lupfig','Lupfig' +--UNION SELECT 5244,'Birrhard','Birrhard' +--UNION SELECT 5078,'Effingen','Effingen' +--UNION SELECT 5077,'Elfingen','Elfingen' +--UNION SELECT 5079,'Zeihen','Zeihen' +--UNION SELECT 5075,'Hornussen','Hornussen' +--UNION SELECT 5070,'Frick','Frick' +--UNION SELECT 5072,'Oeschgen','Oeschgen' +--UNION SELECT 5073,'Gipf-Oberfrick','Gipf-Oberfrick' +--UNION SELECT 5064,'Wittnau','Wittnau' +--UNION SELECT 5062,'Oberhof','Oberhof' +--UNION SELECT 5074,'Eiken','Eiken' +--UNION SELECT 5300,'Turgi','Turgi' +--UNION SELECT 5301,'Siggenthal Station','Siggenthal Station' +--UNION SELECT 5304,'Endingen','Endingen' +--UNION SELECT 5305,'Unterendingen','Unterendingen' +--UNION SELECT 5306,'Tegerfelden','Tegerfelden' +--UNION SELECT 5313,'Klingnau','Klingnau' +--UNION SELECT 5316,'Leuggern','Leuggern' +--UNION SELECT 5317,'Hettenschwil','Hettenschwil' +--UNION SELECT 5318,'Mandach','Mandach' +--UNION SELECT 5322,'Koblenz','Koblenz' +--UNION SELECT 5400,'Baden','Baden' +--UNION SELECT 5400,'Baden 1','Baden 1' +--UNION SELECT 5400,'Ennetbaden','Ennetbaden' +--UNION SELECT 5400,'Baden 1 PAD','Baden 1 Postautodienst' +--UNION SELECT 5400,'Baden','Baden' +--UNION SELECT 5400,'Baden','Baden' +--UNION SELECT 5400,'Baden','Baden' +--UNION SELECT 5400,'Baden','Baden' +--UNION SELECT 5400,'Baden','Baden' +--UNION SELECT 5412,'Gebenstorf','Gebenstorf' +--UNION SELECT 5413,'Birmenstorf AG','Birmenstorf AG' +--UNION SELECT 5415,'Nussbaumen AG','Nussbaumen AG' +--UNION SELECT 5416,'Kirchdorf AG','Kirchdorf AG' +--UNION SELECT 5417,'Untersiggenthal','Untersiggenthal' +--UNION SELECT 5420,'Ehrendingen','Ehrendingen' +--UNION SELECT 5423,'Freienwil','Freienwil' +--UNION SELECT 5425,'Schneisingen','Schneisingen' +--UNION SELECT 5426,'Lengnau AG','Lengnau AG' +--UNION SELECT 5430,'Wettingen','Wettingen' +--UNION SELECT 5430,'Wettingen 1','Wettingen 1' +--UNION SELECT 5430,'Wettingen Dorf','Wettingen Dorf' +--UNION SELECT 5430,'Wettingen 3','Wettingen 3' +--UNION SELECT 5432,'Neuenhof','Neuenhof' +--UNION SELECT 5442,'Fislisbach','Fislisbach' +--UNION SELECT 5443,'Niederrohrdorf','Niederrohrdorf' +--UNION SELECT 5445,'Eggenwil','Eggenwil' +--UNION SELECT 5452,'Oberrohrdorf','Oberrohrdorf' +--UNION SELECT 5453,'Remetschwil','Remetschwil' +--UNION SELECT 5454,'Bellikon','Bellikon' +--UNION SELECT 5502,'Hunzenschwil','Hunzenschwil' +--UNION SELECT 5503,'Schafisheim','Schafisheim' +--UNION SELECT 5504,'Othmarsingen','Othmarsingen' +--UNION SELECT 5505,'Brunegg','Brunegg' +--UNION SELECT 5507,'Mellingen','Mellingen' +--UNION SELECT 5512,'Wohlenschwil','Wohlenschwil' +--UNION SELECT 5524,'Nesselnbach','Nesselnbach' +--UNION SELECT 5524,'Niederwil AG','Niederwil AG' +--UNION SELECT 5600,'Lenzburg','Lenzburg' +--UNION SELECT 5600,'Lenzburg 1','Lenzburg 1' +--UNION SELECT 5600,'Lenzburg Stadt','Lenzburg Stadt' +--UNION SELECT 5600,'Ammerswil AG','Ammerswil AG' +--UNION SELECT 5603,'Staufen','Staufen' +--UNION SELECT 5604,'Hendschiken','Hendschiken' +--UNION SELECT 5605,'Dottikon','Dottikon' +--UNION SELECT 5606,'Dintikon','Dintikon' +--UNION SELECT 5608,'Stetten AG','Stetten AG' +--UNION SELECT 5610,'Wohlen AG','Wohlen AG' +--UNION SELECT 5610,'Wohlen AG 1','Wohlen AG 1' +--UNION SELECT 5610,'Wohlen AG Jurastr','Wohlen AG Jurastrasse' +--UNION SELECT 5611,'Anglikon','Anglikon' +--UNION SELECT 5612,'Villmergen','Villmergen' +--UNION SELECT 5613,'Hilfikon','Hilfikon' +--UNION SELECT 5614,'Sarmenstorf','Sarmenstorf' +--UNION SELECT 5615,'Fahrwangen','Fahrwangen' +--UNION SELECT 5616,'Meisterschwanden','Meisterschwanden' +--UNION SELECT 5617,'Tennwil','Tennwil' +--UNION SELECT 5618,'Bettwil','Bettwil' +--UNION SELECT 5620,'Bremgarten AG','Bremgarten AG' +--UNION SELECT 5621,'Zufikon','Zufikon' +--UNION SELECT 5620,'Bremgarten AG Kas','Bremgarten AG Kaserne' +--UNION SELECT 5622,'Waltenschwil','Waltenschwil' +--UNION SELECT 5623,'Boswil','Boswil' +--UNION SELECT 5625,'Kallern','Kallern' +--UNION SELECT 5626,'Hermetschwil-Staff','Hermetschwil-Staffeln' +--UNION SELECT 5628,'Aristau','Aristau' +--UNION SELECT 5630,'Muri AG','Muri AG' +--UNION SELECT 5632,'Buttwil','Buttwil' +--UNION SELECT 5634,'Merenschwand','Merenschwand' +--UNION SELECT 5636,'Benzenschwil','Benzenschwil' +--UNION SELECT 5637,'Beinwil Freiamt','Beinwil Freiamt' +--UNION SELECT 5643,'Sins','Sins' +--UNION SELECT 5644,'Auw','Auw' +--UNION SELECT 5645,'Aettenschwil','Aettenschwil' +--UNION SELECT 5646,'Abtwil AG','Abtwil AG' +--UNION SELECT 5643,'Alikon','Alikon' +--UNION SELECT 5702,'Niederlenz','Niederlenz' +--UNION SELECT 5703,'Seon','Seon' +--UNION SELECT 5704,'Egliswil','Egliswil' +--UNION SELECT 5705,'Hallwil','Hallwil' +--UNION SELECT 5706,'Boniswil','Boniswil' +--UNION SELECT 5707,'Seengen','Seengen' +--UNION SELECT 5708,'Birrwil','Birrwil' +--UNION SELECT 5712,'Beinwil am See','Beinwil am See' +--UNION SELECT 5723,'Teufenthal AG','Teufenthal AG' +--UNION SELECT 5725,'Leutwil','Leutwil' +--UNION SELECT 5726,'Unterkulm','Unterkulm' +--UNION SELECT 5727,'Oberkulm','Oberkulm' +--UNION SELECT 5728,'Gontenschwil','Gontenschwil' +--UNION SELECT 5732,'Zetzwil','Zetzwil' +--UNION SELECT 5733,'Leimbach AG','Leimbach AG' +--UNION SELECT 5734,'Reinach AG','Reinach AG' +--UNION SELECT 5735,'Pfeffikon LU','Pfeffikon LU' +--UNION SELECT 5736,'Burg AG','Burg AG' +--UNION SELECT 5737,'Menziken','Menziken' +--UNION SELECT 5745,'Safenwil','Safenwil' +--UNION SELECT 5746,'Walterswil SO','Walterswil SO' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6000,'Luzern 1 Hauptpost','Luzern 1 Hauptpost' +--UNION SELECT 6000,'Luzern 4','Luzern 4' +--UNION SELECT 6000,'Luzern 6','Luzern 6' +--UNION SELECT 6000,'Luzern 7','Luzern 7' +--UNION SELECT 6000,'Luzern Wesemlin','Luzern Wesemlin' +--UNION SELECT 6000,'Luzern Kreuzstutz','Luzern Kreuzstutz' +--UNION SELECT 6000,'Luzern 15','Luzern 15' +--UNION SELECT 6000,'Luzern 16','Luzern 16' +--UNION SELECT 6000,'Luzern Zust','Luzern Zustellung' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6010,'Kriens','Kriens' +--UNION SELECT 6012,'Obernau','Obernau' +--UNION SELECT 6013,'Eigenthal','Eigenthal' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 6017,'Ruswil','Ruswil' +--UNION SELECT 6019,'Sigigen','Sigigen' +--UNION SELECT 6018,'Buttisholz','Buttisholz' +--UNION SELECT 6022,'Grosswangen','Grosswangen' +--UNION SELECT 6023,'Rothenburg','Rothenburg' +--UNION SELECT 6024,'Hildisrieden','Hildisrieden' +--UNION SELECT 6025,'Neudorf','Neudorf' +--UNION SELECT 6026,'Rain','Rain' +--UNION SELECT 6028,'Herlisberg','Herlisberg' +--UNION SELECT 6030,'Ebikon','Ebikon' +--UNION SELECT 6032,'Emmen','Emmen' +--UNION SELECT 6033,'Buchrain','Buchrain' +--UNION SELECT 6034,'Inwil','Inwil' +--UNION SELECT 6035,'Perlen','Perlen' +--UNION SELECT 6036,'Dierikon','Dierikon' +--UNION SELECT 6037,'Root','Root' +--UNION SELECT 6038,'Gisikon','Gisikon' +--UNION SELECT 6042,'Dietwil','Dietwil' +--UNION SELECT 6043,'Adligenswil','Adligenswil' +--UNION SELECT 6044,'Udligenswil','Udligenswil' +--UNION SELECT 6045,'Meggen','Meggen' +--UNION SELECT 6047,'Kastanienbaum','Kastanienbaum' +--UNION SELECT 6048,'Horw','Horw' +--UNION SELECT 6052,'Hergiswil NW','Hergiswil NW' +--UNION SELECT 6053,'Alpnachstad','Alpnachstad' +--UNION SELECT 6055,'Alpnach Dorf','Alpnach Dorf' +--UNION SELECT 6060,'Sarnen','Sarnen' +--UNION SELECT 6060,'Ramersberg','Ramersberg' +--UNION SELECT 6068,'Melchsee-Frutt','Melchsee-Frutt' +--UNION SELECT 6062,'Wilen Sarnen','Wilen Sarnen' +--UNION SELECT 6063,'Stalden Sarnen','Stalden Sarnen' +--UNION SELECT 6064,'Kerns','Kerns' +--UNION SELECT 6066,'St. Niklausen OW','St. Niklausen OW' +--UNION SELECT 6067,'Melchtal','Melchtal' +--UNION SELECT 6072,'Sachseln','Sachseln' +--UNION SELECT 6074,'Giswil','Giswil' +--UNION SELECT 6078,'Lungern','Lungern' +--UNION SELECT 6083,'Hasliberg Hohfluh','Hasliberg Hohfluh' +--UNION SELECT 6084,'Hasliberg Wasserw','Hasliberg Wasserwendi' +--UNION SELECT 6085,'Hasliberg Goldern','Hasliberg Goldern' +--UNION SELECT 6086,'Hasliberg Reuti','Hasliberg Reuti' +--UNION SELECT 6010,'Pilatus Kulm','Pilatus Kulm' +--UNION SELECT 6102,'Malters','Malters' +--UNION SELECT 6103,'Schwarzenberg LU','Schwarzenberg LU' +--UNION SELECT 6105,'Schachen LU','Schachen LU' +--UNION SELECT 6106,'Werthenstein','Werthenstein' +--UNION SELECT 6110,'Wolhusen','Wolhusen' +--UNION SELECT 6114,'Steinhuserberg','Steinhuserberg' +--UNION SELECT 6110,'Fontannen','Fontannen b. Wolhusen' +--UNION SELECT 6112,'Doppleschwand','Doppleschwand' +--UNION SELECT 6113,'Romoos','Romoos' +--UNION SELECT 6122,'Menznau','Menznau' +--UNION SELECT 6123,'Geiss','Geiss' +--UNION SELECT 6125,'Menzberg','Menzberg' +--UNION SELECT 6126,'Daiwil','Daiwil' +--UNION SELECT 6130,'Willisau','Willisau' +--UNION SELECT 6132,'Rohrmatt','Rohrmatt' +--UNION SELECT 6133,'Hergiswil LU','Hergiswil b. Willisau' +--UNION SELECT 6142,'Gettnau','Gettnau' +--UNION SELECT 6143,'Ohmstal','Ohmstal' +--UNION SELECT 6144,'Zell LU','Zell LU' +--UNION SELECT 6145,'Fischbach LU','Fischbach LU' +--UNION SELECT 6146,'Grossdietwil','Grossdietwil' +--UNION SELECT 6153,'Ufhusen','Ufhusen' +--UNION SELECT 6154,'Hofstatt','Hofstatt' +--UNION SELECT 6156,'Luthern','Luthern' +--UNION SELECT 6160,'Entlebuch Business','Entlebuch Businesszentrum' +--UNION SELECT 6162,'Entlebuch','Entlebuch' +--UNION SELECT 6163,'Ebnet','Ebnet' +--UNION SELECT 6162,'Rengg','Rengg' +--UNION SELECT 6162,'Finsterwald LU','Finsterwald b. Entlebuch' +--UNION SELECT 6166,'Hasle LU','Hasle LU' +--UNION SELECT 6167,'Bramboden','Bramboden' +--UNION SELECT 6182,'Escholzmatt','Escholzmatt' +--UNION SELECT 6192,'Wiggen','Wiggen' +--UNION SELECT 6196,'Marbach LU','Marbach LU' +--UNION SELECT 6197,'Schangnau','Schangnau' +--UNION SELECT 6203,'Sempach Station','Sempach Station' +--UNION SELECT 6204,'Sempach','Sempach' +--UNION SELECT 6205,'Eich','Eich' +--UNION SELECT 6206,'Neuenkirch','Neuenkirch' +--UNION SELECT 6207,'Nottwil','Nottwil' +--UNION SELECT 6208,'Oberkirch LU','Oberkirch LU' +--UNION SELECT 6210,'Sursee','Sursee' +--UNION SELECT 6211,'Buchs LU','Buchs LU' +--UNION SELECT 6212,'St. Erhard','St. Erhard' +--UNION SELECT 6213,'Knutwil','Knutwil' +--UNION SELECT 6214,'Schenkon','Schenkon' +--UNION SELECT 6215,'Schwarzenbach LU','Schwarzenbach LU' +--UNION SELECT 6216,'Mauensee','Mauensee' +--UNION SELECT 6217,'Kottwil','Kottwil' +--UNION SELECT 6218,'Ettiswil','Ettiswil' +--UNION SELECT 6221,'Rickenbach LU','Rickenbach LU' +--UNION SELECT 6222,'Gunzwil','Gunzwil' +--UNION SELECT 6231,'Schlierbach','Schlierbach' +--UNION SELECT 6232,'Geuensee','Geuensee' +--UNION SELECT 6234,'Triengen','Triengen' +--UNION SELECT 6234,'Kulmerau','Kulmerau' +--UNION SELECT 6236,'Wilihof','Wilihof' +--UNION SELECT 6235,'Winikon','Winikon' +--UNION SELECT 6242,'Wauwil','Wauwil' +--UNION SELECT 6243,'Egolzwil','Egolzwil' +--UNION SELECT 6244,'Nebikon','Nebikon' +--UNION SELECT 6245,'Ebersecken','Ebersecken' +--UNION SELECT 6246,'Altishofen','Altishofen' +--UNION SELECT 6248,'Alberswil','Alberswil' +--UNION SELECT 6252,'Dagmersellen','Dagmersellen' +--UNION SELECT 6253,'Uffikon','Uffikon' +--UNION SELECT 6260,'Reiden','Reiden' +--UNION SELECT 6260,'Reidermoos','Reidermoos' +--UNION SELECT 6262,'Langnau b. Reiden','Langnau b. Reiden' +--UNION SELECT 6263,'Richenthal','Richenthal' +--UNION SELECT 6264,'Pfaffnau','Pfaffnau' +--UNION SELECT 6265,'Roggliswil','Roggliswil' +--UNION SELECT 6274,'Eschenbach LU','Eschenbach LU' +--UNION SELECT 6275,'Ballwil','Ballwil' +--UNION SELECT 6276,'Hohenrain','Hohenrain' +--UNION SELECT 6277,'Kleinwangen','Kleinwangen' +--UNION SELECT 6280,'Hochdorf','Hochdorf' +--UNION SELECT 6280,'Urswil','Urswil' +--UNION SELECT 6283,'Baldegg','Baldegg' +--UNION SELECT 6284,'Gelfingen','Gelfingen' +--UNION SELECT 6285,'Hitzkirch','Hitzkirch' +--UNION SELECT 6285,'Retschwil','Retschwil' +--UNION SELECT 6286,'Altwis','Altwis' +--UNION SELECT 6287,'Aesch LU','Aesch LU' +--UNION SELECT 6288,'Schongau','Schongau' +--UNION SELECT 6294,'Ermensee','Ermensee' +--UNION SELECT 6295,'Mosen','Mosen' +--UNION SELECT 6300,'Zug','Zug' +--UNION SELECT 6300,'Zug Altstadt','Zug Altstadt' +--UNION SELECT 6300,'Zug','Zug' +--UNION SELECT 6313,'Edlibach','Edlibach' +--UNION SELECT 6313,'Finstersee','Finstersee' +--UNION SELECT 6319,'Allenwinden','Allenwinden' +--UNION SELECT 6315,'Morgarten','Morgarten' +--UNION SELECT 6312,'Steinhausen','Steinhausen' +--UNION SELECT 6313,'Menzingen','Menzingen' +--UNION SELECT 6315,'Alosen','Alosen' +--UNION SELECT 6300,'Zugerberg','Zugerberg' +--UNION SELECT 6317,'Oberwil b. Zug','Oberwil b. Zug' +--UNION SELECT 6318,'Walchwil','Walchwil' +--UNION SELECT 6330,'Cham','Cham' +--UNION SELECT 6332,'Hagendorn','Hagendorn' +--UNION SELECT 6340,'Baar','Baar' +--UNION SELECT 6343,'Rotkreuz','Rotkreuz' +--UNION SELECT 6344,'Meierskappel','Meierskappel' +--UNION SELECT 6345,'Neuheim','Neuheim' +--UNION SELECT 6353,'Weggis','Weggis' +--UNION SELECT 6354,'Vitznau','Vitznau' +--UNION SELECT 6356,'Rigi Kaltbad','Rigi Kaltbad' +--UNION SELECT 6362,'Stansstad','Stansstad' +--UNION SELECT 6365,'Kehrsiten','Kehrsiten' +--UNION SELECT 6370,'Stans','Stans' +--UNION SELECT 6372,'Ennetmoos','Ennetmoos' +--UNION SELECT 6374,'Buochs','Buochs' +--UNION SELECT 6375,'Beckenried','Beckenried' +--UNION SELECT 6376,'Emmetten','Emmetten' +--UNION SELECT 6377,'Seelisberg','Seelisberg' +--UNION SELECT 6383,'Dallenwil','Dallenwil' +--UNION SELECT 6383,'Niederrickenbach','Niederrickenbach' +--UNION SELECT 6386,'Wolfenschiessen','Wolfenschiessen' +--UNION SELECT 6387,'Oberrickenbach','Oberrickenbach' +--UNION SELECT 6388,'Grafenort','Grafenort' +--UNION SELECT 6390,'Engelberg','Engelberg' +--UNION SELECT 6402,'Merlischachen','Merlischachen' +--UNION SELECT 6404,'Greppen','Greppen' +--UNION SELECT 6405,'Immensee','Immensee' +--UNION SELECT 6410,'Goldau','Goldau' +--UNION SELECT 6410,'Rigi Staffel','Rigi Staffel' +--UNION SELECT 6410,'Rigi Kulm','Rigi Kulm' +--UNION SELECT 6414,'Oberarth','Oberarth' +--UNION SELECT 6415,'Arth','Arth' +--UNION SELECT 6416,'Steinerberg','Steinerberg' +--UNION SELECT 6417,'Sattel','Sattel' +--UNION SELECT 6418,'Rothenthurm','Rothenthurm' +--UNION SELECT 6422,'Steinen','Steinen' +--UNION SELECT 6423,'Seewen SZ','Seewen SZ' +--UNION SELECT 6424,'Lauerz','Lauerz' +--UNION SELECT 6430,'Schwyz','Schwyz' +--UNION SELECT 6436,'Ried Muotathal','Ried Muotathal' +--UNION SELECT 6432,'Rickenbach SZ','Rickenbach b. Schwyz' +--UNION SELECT 6433,'Stoos SZ','Stoos SZ' +--UNION SELECT 6434,'Illgau','Illgau' +--UNION SELECT 6436,'Muotathal','Muotathal' +--UNION SELECT 6436,'Bisisthal','Bisisthal' +--UNION SELECT 6438,'Ibach','Ibach' +--UNION SELECT 6440,'Brunnen','Brunnen' +--UNION SELECT 6442,'Gersau','Gersau' +--UNION SELECT 6443,'Morschach','Morschach' +--UNION SELECT 6452,'Sisikon','Sisikon' +--UNION SELECT 6452,'Riemenstalden','Riemenstalden' +--UNION SELECT 6460,'Altdorf UR','Altdorf UR' +--UNION SELECT 6461,'Isenthal','Isenthal' +--UNION SELECT 6462,'Seedorf UR','Seedorf UR' +--UNION SELECT 6464,'Spiringen','Spiringen' +--UNION SELECT 6466,'Bauen','Bauen' +--UNION SELECT 6467,'Schattdorf','Schattdorf' +--UNION SELECT 6469,'Haldi b.Schattdorf','Haldi b. Schattdorf' +--UNION SELECT 6468,'Attinghausen','Attinghausen' +--UNION SELECT 6472,'Erstfeld','Erstfeld' +--UNION SELECT 6473,'Silenen','Silenen' +--UNION SELECT 6474,'Amsteg','Amsteg' +--UNION SELECT 6475,'Bristen','Bristen' +--UNION SELECT 6476,'Intschi','Intschi' +--UNION SELECT 6482,'Gurtnellen','Gurtnellen' +--UNION SELECT 6484,'Wassen UR','Wassen UR' +--UNION SELECT 6485,'Meien','Meien' +--UNION SELECT 6490,'Andermatt','Andermatt' +--UNION SELECT 6491,'Realp','Realp' +--UNION SELECT 6493,'Hospental','Hospental' +--UNION SELECT 6500,'Bellinzona','Bellinzona' +--UNION SELECT 6500,'Bellinzona 1','Bellinzona 1' +--UNION SELECT 6500,'Bellinzona 2','Bellinzona 2' +--UNION SELECT 6500,'Bellinzona 4','Bellinzona 4' +--UNION SELECT 6500,'Bellinzona 5','Bellinzona 5' +--UNION SELECT 6500,'Bellinzona','Bellinzona' +--UNION SELECT 6500,'Bellinzona Caserma','Bellinzona Caserma' +--UNION SELECT 6500,'Bellinzona','Bellinzona' +--UNION SELECT 6500,'Bellinzona 6 Autop','Bellinzona 6 Autopostale TI' +--UNION SELECT 6512,'Giubiasco','Giubiasco' +--UNION SELECT 6513,'Monte Carasso','Monte Carasso' +--UNION SELECT 6514,'Sementina','Sementina' +--UNION SELECT 6515,'Gudo','Gudo' +--UNION SELECT 6516,'Cugnasco','Cugnasco' +--UNION SELECT 6517,'Arbedo','Arbedo' +--UNION SELECT 6518,'Gorduno','Gorduno' +--UNION SELECT 6525,'Gnosca','Gnosca' +--UNION SELECT 6526,'Prosito','Prosito' +--UNION SELECT 6527,'Lodrino','Lodrino' +--UNION SELECT 6528,'Camorino','Camorino' +--UNION SELECT 6532,'Castione','Castione' +--UNION SELECT 6533,'Lumino','Lumino' +--UNION SELECT 6534,'S. Vittore','S. Vittore' +--UNION SELECT 6535,'Roveredo GR','Roveredo GR' +--UNION SELECT 6537,'Grono','Grono' +--UNION SELECT 6523,'Preonzo','Preonzo' +--UNION SELECT 6524,'Moleno','Moleno' +--UNION SELECT 6582,'Pianezzo','Pianezzo' +--UNION SELECT 6583,'S. Antonio','S. Antonio Val Morobbia' +--UNION SELECT 6584,'Carena','Carena' +--UNION SELECT 6549,'Laura','Laura' +--UNION SELECT 6540,'Castaneda','Castaneda' +--UNION SELECT 6541,'Sta. Maria','Sta. Maria in Calanca' +--UNION SELECT 6538,'Verdabbio','Verdabbio' +--UNION SELECT 6542,'Buseno','Buseno' +--UNION SELECT 6543,'Arvigo','Arvigo' +--UNION SELECT 6544,'Braggio','Braggio' +--UNION SELECT 6545,'Selma','Selma' +--UNION SELECT 6546,'Cauco','Cauco' +--UNION SELECT 6548,'Augio','Augio' +--UNION SELECT 6548,'Rossa','Rossa' +--UNION SELECT 6556,'Leggia','Leggia' +--UNION SELECT 6565,'S. Bernardino','S. Bernardino' +--UNION SELECT 6557,'Cama','Cama' +--UNION SELECT 6558,'Lostallo','Lostallo' +--UNION SELECT 6558,'Cabbiolo','Cabbiolo' +--UNION SELECT 6562,'Soazza','Soazza' +--UNION SELECT 6563,'Mesocco','Mesocco' +--UNION SELECT 6572,'Quartino','Quartino' +--UNION SELECT 6573,'Magadino','Magadino' +--UNION SELECT 6574,'Vira Gambarogno','Vira Gambarogno' +--UNION SELECT 6575,'S. Nazzaro','S. Nazzaro' +--UNION SELECT 6575,'Vairano','Vairano' +--UNION SELECT 6576,'Gerra Gambarogno','Gerra Gambarogno' +--UNION SELECT 6577,'Ranzo','Ranzo' +--UNION SELECT 6578,'Caviano','Caviano' +--UNION SELECT 6579,'Piazzogna','Piazzogna' +--UNION SELECT 6571,'Indemini','Indemini' +--UNION SELECT 6592,'S. Antonino','S. Antonino' +--UNION SELECT 6593,'Cadenazzo','Cadenazzo' +--UNION SELECT 6594,'Contone','Contone' +--UNION SELECT 6595,'Riazzino','Riazzino' +--UNION SELECT 6596,'Gordola','Gordola' +--UNION SELECT 6597,'Agarone','Agarone' +--UNION SELECT 6598,'Tenero','Tenero' +--UNION SELECT 6599,'Robasacco','Robasacco' +--UNION SELECT 6600,'Locarno','Locarno' +--UNION SELECT 6600,'Locarno 1','Locarno 1' +--UNION SELECT 6600,'Muralto','Muralto' +--UNION SELECT 6600,'Locarno','Locarno' +--UNION SELECT 6600,'Locarno Dist','Locarno Distribuzione' +--UNION SELECT 6600,'Locarno','Locarno' +--UNION SELECT 6600,'Locarno','Locarno' +--UNION SELECT 6656,'Golino','Golino' +--UNION SELECT 6618,'Arcegno','Arcegno' +--UNION SELECT 6646,'Contra','Contra' +--UNION SELECT 6647,'Mergoscia','Mergoscia' +--UNION SELECT 6661,'Auressio','Auressio' +--UNION SELECT 6661,'Loco','Loco' +--UNION SELECT 6661,'Berzona','Berzona' +--UNION SELECT 6611,'Mosogno','Mosogno' +--UNION SELECT 6662,'Russo','Russo' +--UNION SELECT 6664,'Vergeletto','Vergeletto' +--UNION SELECT 6611,'Gresso','Gresso' +--UNION SELECT 6611,'Crana','Crana' +--UNION SELECT 6663,'Comologno','Comologno' +--UNION SELECT 6663,'Spruga','Spruga' +--UNION SELECT 6632,'Vogorno','Vogorno' +--UNION SELECT 6631,'Corippo','Corippo' +--UNION SELECT 6633,'Lavertezzo','Lavertezzo' +--UNION SELECT 6634,'Brione Verzasca','Brione Verzasca' +--UNION SELECT 6635,'Gerra Verzasca','Gerra Verzasca' +--UNION SELECT 6636,'Frasco','Frasco' +--UNION SELECT 6637,'Sonogno','Sonogno' +--UNION SELECT 6612,'Ascona','Ascona' +--UNION SELECT 6613,'Porto Ronco','Porto Ronco' +--UNION SELECT 6614,'Brissago','Brissago' +--UNION SELECT 6614,'Isole di Brissago','Isole di Brissago' +--UNION SELECT 6616,'Losone','Losone' +--UNION SELECT 6622,'Ronco sopra Ascona','Ronco sopra Ascona' +--UNION SELECT 6644,'Orselina','Orselina' +--UNION SELECT 6645,'Brione s. Minusio','Brione sopra Minusio' +--UNION SELECT 6648,'Minusio','Minusio' +--UNION SELECT 6655,'Verdasio','Verdasio' +--UNION SELECT 6655,'Rasa','Rasa' +--UNION SELECT 6657,'Palagnedra','Palagnedra' +--UNION SELECT 6658,'Borgnone','Borgnone' +--UNION SELECT 6659,'Camedo','Camedo' +--UNION SELECT 6659,'Moneto','Moneto' +--UNION SELECT 6652,'Tegna','Tegna' +--UNION SELECT 6653,'Verscio','Verscio' +--UNION SELECT 6654,'Cavigliano','Cavigliano' +--UNION SELECT 6655,'Intragna','Intragna' +--UNION SELECT 6670,'Avegno','Avegno' +--UNION SELECT 6677,'Moghegno','Moghegno' +--UNION SELECT 6678,'Coglio','Coglio' +--UNION SELECT 6678,'Lodano','Lodano' +--UNION SELECT 6678,'Giumaglio','Giumaglio' +--UNION SELECT 6674,'Riveo','Riveo' +--UNION SELECT 6682,'Linescio','Linescio' +--UNION SELECT 6683,'Cerentino','Cerentino' +--UNION SELECT 6685,'Bosco/Gurin','Bosco/Gurin' +--UNION SELECT 6683,'Niva Vallemaggia','Niva Vallemaggia' +--UNION SELECT 6684,'Campo VM','Campo Vallemaggia' +--UNION SELECT 6684,'Cimalmotto','Cimalmotto' +--UNION SELECT 6690,'Cavergno','Cavergno' +--UNION SELECT 6690,'S. Carlo','S. Carlo Val Bavona' +--UNION SELECT 6692,'Brontallo','Brontallo' +--UNION SELECT 6692,'Menzonio','Menzonio' +--UNION SELECT 6693,'Broglio','Broglio' +--UNION SELECT 6694,'Prato-Sornico','Prato-Sornico' +--UNION SELECT 6695,'Peccia','Peccia' +--UNION SELECT 6695,'Piano di Peccia','Piano di Peccia' +--UNION SELECT 6696,'Fusio','Fusio' +--UNION SELECT 6672,'Gordevio','Gordevio' +--UNION SELECT 6673,'Maggia','Maggia' +--UNION SELECT 6674,'Someo','Someo' +--UNION SELECT 6675,'Cevio','Cevio' +--UNION SELECT 6676,'Bignasco','Bignasco' +--UNION SELECT 6702,'Claro','Claro' +--UNION SELECT 6703,'Osogna','Osogna' +--UNION SELECT 6705,'Cresciano','Cresciano' +--UNION SELECT 6707,'Iragna','Iragna' +--UNION SELECT 6710,'Biasca','Biasca' +--UNION SELECT 6710,'Biasca Stazione','Biasca Stazione' +--UNION SELECT 6721,'Ludiano','Ludiano' +--UNION SELECT 6722,'Corzoneso','Corzoneso' +--UNION SELECT 6716,'Leontica','Leontica' +--UNION SELECT 6723,'Prugiasco','Prugiasco' +--UNION SELECT 6723,'Castro','Castro' +--UNION SELECT 6724,'Ponto Valentino','Ponto Valentino' +--UNION SELECT 6716,'Lottigna','Lottigna' +--UNION SELECT 6719,'Aquila','Aquila' +--UNION SELECT 6720,'Campo Blenio','Campo Blenio' +--UNION SELECT 6721,'Motto Blenio','Motto Blenio' +--UNION SELECT 6713,'Malvaglia','Malvaglia' +--UNION SELECT 6714,'Semione','Semione' +--UNION SELECT 6715,'Dongio','Dongio' +--UNION SELECT 6716,'Acquarossa','Acquarossa' +--UNION SELECT 6717,'Dangio','Dangio' +--UNION SELECT 6717,'Torre','Torre' +--UNION SELECT 6718,'Olivone','Olivone' +--UNION SELECT 6718,'Camperio','Camperio' +--UNION SELECT 6742,'Pollegio','Pollegio' +--UNION SELECT 6743,'Bodio TI','Bodio TI' +--UNION SELECT 6745,'Giornico','Giornico' +--UNION SELECT 6746,'Lavorgo','Lavorgo' +--UNION SELECT 6746,'Calonico','Calonico' +--UNION SELECT 6746,'Nivo','Nivo' +--UNION SELECT 6747,'Chironico','Chironico' +--UNION SELECT 6760,'Faido','Faido' +--UNION SELECT 6760,'Molare','Molare' +--UNION SELECT 6760,'Calpiogna','Calpiogna' +--UNION SELECT 6760,'Campello','Campello' +--UNION SELECT 6772,'Rodi-Fiesso','Rodi-Fiesso' +--UNION SELECT 6776,'Piotta','Piotta' +--UNION SELECT 6777,'Quinto','Quinto' +--UNION SELECT 6777,'Varenzo','Varenzo' +--UNION SELECT 6780,'Airolo','Airolo' +--UNION SELECT 6781,'Villa Bedretto','Villa Bedretto' +--UNION SELECT 6780,'Madrano','Madrano' +--UNION SELECT 6781,'Bedretto','Bedretto' +--UNION SELECT 6744,'Personico','Personico' +--UNION SELECT 6748,'Anzonico','Anzonico' +--UNION SELECT 6749,'Sobrio','Sobrio' +--UNION SELECT 6749,'Cavagnago','Cavagnago' +--UNION SELECT 6763,'Mairengo','Mairengo' +--UNION SELECT 6763,'Osco','Osco' +--UNION SELECT 6760,'Rossura','Rossura' +--UNION SELECT 6764,'Chiggiogna','Chiggiogna' +--UNION SELECT 6773,'Prato Leventina','Prato Leventina' +--UNION SELECT 6774,'Dalpe','Dalpe' +--UNION SELECT 6802,'Rivera','Rivera' +--UNION SELECT 6804,'Bironico','Bironico' +--UNION SELECT 6803,'Camignolo','Camignolo' +--UNION SELECT 6807,'Taverne','Taverne' +--UNION SELECT 6808,'Torricella','Torricella' +--UNION SELECT 6814,'Lamone-Cadempino','Lamone-Cadempino' +--UNION SELECT 6815,'Melide','Melide' +--UNION SELECT 6816,'Bissone','Bissone' +--UNION SELECT 6817,'Maroggia','Maroggia' +--UNION SELECT 6818,'Melano','Melano' +--UNION SELECT 6822,'Arogno','Arogno' +--UNION SELECT 6825,'Capolago','Capolago' +--UNION SELECT 6826,'Riva San Vitale','Riva San Vitale' +--UNION SELECT 6828,'Balerna','Balerna' +--UNION SELECT 6830,'Chiasso','Chiasso' +--UNION SELECT 6830,'Chiasso 1','Chiasso 1' +--UNION SELECT 6830,'Chiasso 3','Chiasso 3' +--UNION SELECT 6839,'Sagno','Sagno' +--UNION SELECT 6837,'Caneggio','Caneggio' +--UNION SELECT 6837,'Bruzella','Bruzella' +--UNION SELECT 6838,'Cabbio','Cabbio' +--UNION SELECT 6838,'Muggio','Muggio' +--UNION SELECT 6832,'Pedrinate','Pedrinate' +--UNION SELECT 6832,'Seseglio','Seseglio' +--UNION SELECT 6833,'Vacallo','Vacallo' +--UNION SELECT 6834,'Morbio Inferiore','Morbio Inferiore' +--UNION SELECT 6836,'Serfontana','Serfontana' +--UNION SELECT 6835,'Morbio Superiore','Morbio Superiore' +--UNION SELECT 6809,'Medeglia','Medeglia' +--UNION SELECT 6810,'Isone','Isone' +--UNION SELECT 6805,'Mezzovico','Mezzovico' +--UNION SELECT 6806,'Sigirino','Sigirino' +--UNION SELECT 6821,'Rovio','Rovio' +--UNION SELECT 6823,'Pugerna','Pugerna' +--UNION SELECT 6850,'Mendrisio','Mendrisio' +--UNION SELECT 6850,'Mendrisio Stazione','Mendrisio Stazione' +--UNION SELECT 6850,'Mendrisio Borgo','Mendrisio Borgo' +--UNION SELECT 6875,'Monte','Monte' +--UNION SELECT 6875,'Casima','Casima' +--UNION SELECT 6873,'Corteglia','Corteglia' +--UNION SELECT 6852,'Genestrerio','Genestrerio' +--UNION SELECT 6853,'Ligornetto','Ligornetto' +--UNION SELECT 6854,'S. Pietro','S. Pietro' +--UNION SELECT 6855,'Stabio','Stabio' +--UNION SELECT 6862,'Rancate','Rancate' +--UNION SELECT 6863,'Besazio','Besazio' +--UNION SELECT 6864,'Arzo','Arzo' +--UNION SELECT 6865,'Tremona','Tremona' +--UNION SELECT 6866,'Meride','Meride' +--UNION SELECT 6867,'Serpiano','Serpiano' +--UNION SELECT 6872,'Salorino','Salorino' +--UNION SELECT 6872,'Somazzo','Somazzo' +--UNION SELECT 6874,'Castel San Pietro','Castel San Pietro' +--UNION SELECT 6877,'Coldrerio','Coldrerio' +--UNION SELECT 6883,'Novazzano','Novazzano' +--UNION SELECT 6900,'Lugano','Lugano' +--UNION SELECT 6900,'Lugano 1','Lugano 1' +--UNION SELECT 6900,'Massagno','Massagno' +--UNION SELECT 6900,'Lugano','Lugano' +--UNION SELECT 6900,'Lugano 2 Caselle','Lugano 2 Paradiso Caselle' +--UNION SELECT 6900,'Lugano','Lugano' +--UNION SELECT 6900,'Lugano 4 Caselle','Lugano 4 Molino Nuovo Casel' +--UNION SELECT 6900,'Lugano 5 Autoposta','Lugano 5 Serv Autopostali' +--UNION SELECT 6900,'Lugano 6 Caselle','Lugano 6 Cassarate Caselle' +--UNION SELECT 6913,'Carabbia','Carabbia' +--UNION SELECT 6915,'Pambio-Noranco','Pambio-Noranco' +--UNION SELECT 6916,'Grancia','Grancia' +--UNION SELECT 6917,'Barbengo','Barbengo' +--UNION SELECT 6919,'Carabietta','Carabietta' +--UNION SELECT 6921,'Vico Morcote','Vico Morcote' +--UNION SELECT 6928,'Manno','Manno' +--UNION SELECT 6929,'Gravesano','Gravesano' +--UNION SELECT 6930,'Bedano','Bedano' +--UNION SELECT 6939,'Arosio','Arosio' +--UNION SELECT 6939,'Mugena','Mugena' +--UNION SELECT 6938,'Vezio','Vezio' +--UNION SELECT 6937,'Breno','Breno' +--UNION SELECT 6938,'Fescoggia','Fescoggia' +--UNION SELECT 6949,'Comano','Comano' +--UNION SELECT 6827,'Brusino Arsizio','Brusino Arsizio' +--UNION SELECT 6912,'Pazzallo','Pazzallo' +--UNION SELECT 6914,'Carona','Carona' +--UNION SELECT 6918,'Figino','Figino' +--UNION SELECT 6922,'Morcote','Morcote' +--UNION SELECT 6924,'Sorengo','Sorengo' +--UNION SELECT 6925,'Gentilino','Gentilino' +--UNION SELECT 6926,'Montagnola','Montagnola' +--UNION SELECT 6927,'Agra','Agra' +--UNION SELECT 6932,'Breganzona','Breganzona' +--UNION SELECT 6933,'Muzzano','Muzzano' +--UNION SELECT 6934,'Bioggio','Bioggio' +--UNION SELECT 6935,'Bosco Luganese','Bosco Luganese' +--UNION SELECT 6936,'Cademario','Cademario' +--UNION SELECT 6942,'Savosa','Savosa' +--UNION SELECT 6943,'Vezia','Vezia' +--UNION SELECT 6948,'Porza','Porza' +--UNION SELECT 6950,'Tesserete','Tesserete' +--UNION SELECT 6944,'Cureglia','Cureglia' +--UNION SELECT 6945,'Origlio','Origlio' +--UNION SELECT 6946,'Ponte Capriasca','Ponte Capriasca' +--UNION SELECT 6947,'Vaglio','Vaglio' +--UNION SELECT 6954,'Sala Capriasca','Sala Capriasca' +--UNION SELECT 6954,'Bigorio','Bigorio' +--UNION SELECT 6953,'Lugaggia','Lugaggia' +--UNION SELECT 6951,'Insone','Insone' +--UNION SELECT 6956,'Lopagno','Lopagno' +--UNION SELECT 6957,'Roveredo TI','Roveredo TI' +--UNION SELECT 6958,'Bidogno','Bidogno' +--UNION SELECT 6958,'Corticiasca','Corticiasca' +--UNION SELECT 6951,'Scareglia','Scareglia' +--UNION SELECT 6951,'Colla','Colla' +--UNION SELECT 6951,'Bogno','Bogno' +--UNION SELECT 6951,'Cozzo','Cozzo' +--UNION SELECT 6955,'Cagiallo','Cagiallo' +--UNION SELECT 6955,'Oggio','Oggio' +--UNION SELECT 6959,'Cimadera','Cimadera' +--UNION SELECT 6959,'Maglio di Colla','Maglio di Colla' +--UNION SELECT 6959,'Certara','Certara' +--UNION SELECT 6959,'Curtina','Curtina' +--UNION SELECT 6959,'Piandera Paese','Piandera Paese' +--UNION SELECT 6952,'Canobbio','Canobbio' +--UNION SELECT 6962,'Viganello','Viganello' +--UNION SELECT 6963,'Pregassona','Pregassona' +--UNION SELECT 6964,'Davesco-Soragno','Davesco-Soragno' +--UNION SELECT 6965,'Cadro','Cadro' +--UNION SELECT 6966,'Villa Luganese','Villa Luganese' +--UNION SELECT 6967,'Dino','Dino' +--UNION SELECT 6968,'Sonvico','Sonvico' +--UNION SELECT 6974,'Aldesago','Aldesago' +--UNION SELECT 6976,'Castagnola','Castagnola' +--UNION SELECT 6977,'Ruvigliana','Ruvigliana' +--UNION SELECT 6978,'Gandria','Gandria' +--UNION SELECT 6990,'Cassina d''Agno','Cassina d''Agno' +--UNION SELECT 6991,'Neggio','Neggio' +--UNION SELECT 6992,'Vernate','Vernate' +--UNION SELECT 6993,'Iseo','Iseo' +--UNION SELECT 6994,'Aranno','Aranno' +--UNION SELECT 6992,'Cimo','Cimo' +--UNION SELECT 6981,'Bedigliora','Bedigliora' +--UNION SELECT 6980,'Castelrotto','Castelrotto' +--UNION SELECT 6981,'Bombinasco','Bombinasco' +--UNION SELECT 6981,'Banco','Banco' +--UNION SELECT 6999,'Astano','Astano' +--UNION SELECT 6986,'Miglieglia','Miglieglia' +--UNION SELECT 6989,'Purasca','Purasca' +--UNION SELECT 6997,'Sessa','Sessa' +--UNION SELECT 6982,'Agno','Agno' +--UNION SELECT 6983,'Magliaso','Magliaso' +--UNION SELECT 6984,'Pura','Pura' +--UNION SELECT 6986,'Curio','Curio' +--UNION SELECT 6986,'Novaggio','Novaggio' +--UNION SELECT 6987,'Caslano','Caslano' +--UNION SELECT 6988,'Ponte Tresa','Ponte Tresa' +--UNION SELECT 7000,'Chur','Chur' +--UNION SELECT 7000,'Chur 1 Annahme','Chur 1 Annahme' +--UNION SELECT 7000,'Chur 1 Zustellung','Chur 1 Zustellung' +--UNION SELECT 7000,'Chur Kaserne','Chur Kaserne' +--UNION SELECT 7000,'Chur','Chur' +--UNION SELECT 7000,'Chur','Chur' +--UNION SELECT 7000,'Chur','Chur' +--UNION SELECT 7000,'Chur','Chur' +--UNION SELECT 7012,'Felsberg','Felsberg' +--UNION SELECT 7013,'Domat/Ems','Domat/Ems' +--UNION SELECT 7015,'Tamins','Tamins' +--UNION SELECT 7017,'Flims Dorf','Flims Dorf' +--UNION SELECT 7018,'Flims Waldhaus','Flims Waldhaus' +--UNION SELECT 7023,'Haldenstein','Haldenstein' +--UNION SELECT 7026,'Maladers','Maladers' +--UNION SELECT 7031,'Laax GR','Laax GR' +--UNION SELECT 7031,'Laax GR 2','Laax GR 2' +--UNION SELECT 7050,'Arosa','Arosa' +--UNION SELECT 7062,'Passugg','Passugg' +--UNION SELECT 7063,'Praden','Praden' +--UNION SELECT 7064,'Tschiertschen','Tschiertschen' +--UNION SELECT 7074,'Malix','Malix' +--UNION SELECT 7075,'Churwalden','Churwalden' +--UNION SELECT 7076,'Parpan','Parpan' +--UNION SELECT 7077,'Valbella','Valbella' +--UNION SELECT 7078,'Lenzerheide/Lai','Lenzerheide/Lai' +--UNION SELECT 7082,'Vaz/Obervaz','Vaz/Obervaz' +--UNION SELECT 7083,'Lantsch/Lenz','Lantsch/Lenz' +--UNION SELECT 7084,'Brienz/Brinzauls','Brienz/Brinzauls GR' +--UNION SELECT 7014,'Trin','Trin' +--UNION SELECT 7016,'Trin Mulin','Trin Mulin' +--UNION SELECT 7019,'Fidaz','Fidaz' +--UNION SELECT 7027,'Castiel','Castiel' +--UNION SELECT 7028,'St. Peter','St. Peter' +--UNION SELECT 7028,'Pagig','Pagig' +--UNION SELECT 7056,'Molinis','Molinis' +--UNION SELECT 7029,'Peist','Peist' +--UNION SELECT 7057,'Langwies','Langwies' +--UNION SELECT 7104,'Versam','Versam' +--UNION SELECT 7106,'Tenna','Tenna' +--UNION SELECT 7107,'Safien Platz','Safien Platz' +--UNION SELECT 7109,'Thalkirch','Thalkirch' +--UNION SELECT 7122,'Valendas','Valendas' +--UNION SELECT 7126,'Castrisch','Castrisch' +--UNION SELECT 7130,'Ilanz','Ilanz' +--UNION SELECT 7154,'Ruschein','Ruschein' +--UNION SELECT 7155,'Ladir','Ladir' +--UNION SELECT 7151,'Schluein','Schluein' +--UNION SELECT 7153,'Falera','Falera' +--UNION SELECT 7152,'Sagogn','Sagogn' +--UNION SELECT 7127,'Sevgein','Sevgein' +--UNION SELECT 7128,'Riein','Riein' +--UNION SELECT 7111,'Pitasch','Pitasch' +--UNION SELECT 7112,'Duvin','Duvin' +--UNION SELECT 7113,'Camuns','Camuns' +--UNION SELECT 7114,'Uors Lumnezia','Uors Lumnezia' +--UNION SELECT 7115,'Surcasti','Surcasti' +--UNION SELECT 7116,'Tersnaus','Tersnaus' +--UNION SELECT 7141,'Luven','Luven' +--UNION SELECT 7142,'Cumbel','Cumbel' +--UNION SELECT 7143,'Morissen','Morissen' +--UNION SELECT 7144,'Vella','Vella' +--UNION SELECT 7145,'Degen','Degen' +--UNION SELECT 7146,'Vattiz','Vattiz' +--UNION SELECT 7147,'Vignogn','Vignogn' +--UNION SELECT 7148,'Lumbrein','Lumbrein' +--UNION SELECT 7149,'Vrin','Vrin' +--UNION SELECT 7137,'Flond','Flond' +--UNION SELECT 7138,'Surcuolm','Surcuolm' +--UNION SELECT 7132,'Vals','Vals' +--UNION SELECT 7134,'Obersaxen','Obersaxen' +--UNION SELECT 7156,'Pigniu','Pigniu' +--UNION SELECT 7156,'Rueun','Rueun' +--UNION SELECT 7157,'Siat','Siat' +--UNION SELECT 7158,'Waltensburg/Vuorz','Waltensburg/Vuorz' +--UNION SELECT 7159,'Andiast','Andiast' +--UNION SELECT 7162,'Tavanasa','Tavanasa' +--UNION SELECT 7163,'Danis','Danis' +--UNION SELECT 7164,'Dardin','Dardin' +--UNION SELECT 7165,'Breil/Brigels','Breil/Brigels' +--UNION SELECT 7166,'Trun','Trun' +--UNION SELECT 7168,'Schlans','Schlans' +--UNION SELECT 7167,'Zignau','Zignau' +--UNION SELECT 7172,'Rabius','Rabius' +--UNION SELECT 7175,'Sumvitg','Sumvitg' +--UNION SELECT 7174,'S. Benedetg','S. Benedetg' +--UNION SELECT 7182,'Cavardiras','Cavardiras' +--UNION SELECT 7184,'Curaglia','Curaglia' +--UNION SELECT 7185,'Platta','Platta' +--UNION SELECT 7186,'Segnas','Segnas' +--UNION SELECT 7187,'Camischolas','Camischolas' +--UNION SELECT 7189,'Rueras','Rueras' +--UNION SELECT 7188,'Sedrun','Sedrun' +--UNION SELECT 7173,'Surrein','Surrein' +--UNION SELECT 7176,'Cumpadials','Cumpadials' +--UNION SELECT 7203,'Trimmis','Trimmis' +--UNION SELECT 7202,'Says','Says' +--UNION SELECT 7204,'Untervaz','Untervaz' +--UNION SELECT 7205,'Zizers','Zizers' +--UNION SELECT 7206,'Igis','Igis' +--UNION SELECT 7208,'Malans GR','Malans GR' +--UNION SELECT 7212,'Seewis Dorf','Seewis Dorf' +--UNION SELECT 7213,'Valzeina','Valzeina' +--UNION SELECT 7215,'Fanas','Fanas' +--UNION SELECT 7220,'Schiers','Schiers' +--UNION SELECT 7228,'Schuders','Schuders' +--UNION SELECT 7226,'Stels','Stels' +--UNION SELECT 7222,'Lunden','Lunden' +--UNION SELECT 7224,'Putz','Putz' +--UNION SELECT 7228,'Pusserein','Pusserein' +--UNION SELECT 7231,'Pragg-Jenaz','Pragg-Jenaz' +--UNION SELECT 7232,'Furna','Furna' +--UNION SELECT 7233,'Jenaz','Jenaz' +--UNION SELECT 7235,'Fideris','Fideris' +--UNION SELECT 7242,'Luzein','Luzein' +--UNION SELECT 7243,'Pany','Pany' +--UNION SELECT 7245,'Ascharina','Ascharina' +--UNION SELECT 7249,'Serneus','Serneus' +--UNION SELECT 7250,'Klosters','Klosters' +--UNION SELECT 7252,'Klosters Dorf','Klosters Dorf' +--UNION SELECT 7260,'Davos Dorf','Davos Dorf' +--UNION SELECT 7265,'Davos Wolfgang','Davos Wolfgang' +--UNION SELECT 7270,'Davos Platz','Davos Platz' +--UNION SELECT 7272,'Davos Clavadel','Davos Clavadel' +--UNION SELECT 7276,'Davos Frauenkirch','Davos Frauenkirch' +--UNION SELECT 7277,'Davos Glaris','Davos Glaris' +--UNION SELECT 7278,'Davos Monstein','Davos Monstein' +--UNION SELECT 7302,'Landquart','Landquart' +--UNION SELECT 7303,'Mastrils','Mastrils' +--UNION SELECT 7304,'Maienfeld','Maienfeld' +--UNION SELECT 7307,'Jenins','Jenins' +--UNION SELECT 7310,'Bad Ragaz','Bad Ragaz' +--UNION SELECT 7317,'Valens','Valens' +--UNION SELECT 7314,'Vadura','Vadura' +--UNION SELECT 7313,'St. Margrethenberg','St. Margrethenberg' +--UNION SELECT 7320,'Sargans','Sargans' +--UNION SELECT 7325,'Schwendi','Schwendi im Weisstannental' +--UNION SELECT 7326,'Weisstannen','Weisstannen' +--UNION SELECT 7323,'Wangs','Wangs' +--UNION SELECT 7324,'Vilters','Vilters' +--UNION SELECT 7402,'Bonaduz','Bonaduz' +--UNION SELECT 7404,'Feldis/Veulden','Feldis/Veulden' +--UNION SELECT 7405,'Rothenbrunnen','Rothenbrunnen' +--UNION SELECT 7408,'Cazis','Cazis' +--UNION SELECT 7411,'Sils im Domleschg','Sils im Domleschg' +--UNION SELECT 7412,'Scharans','Scharans' +--UNION SELECT 7415,'Rodels','Rodels' +--UNION SELECT 7416,'Almens','Almens' +--UNION SELECT 7417,'Paspels','Paspels' +--UNION SELECT 7407,'Trans','Trans' +--UNION SELECT 7418,'Tumegl/Tomils','Tumegl/Tomils' +--UNION SELECT 7419,'Scheid','Scheid' +--UNION SELECT 7430,'Thusis','Thusis' +--UNION SELECT 7425,'Masein','Masein' +--UNION SELECT 7426,'Flerden','Flerden' +--UNION SELECT 7427,'Urmein','Urmein' +--UNION SELECT 7428,'Tschappina','Tschappina' +--UNION SELECT 7421,'Summaprada','Summaprada' +--UNION SELECT 7422,'Tartar','Tartar' +--UNION SELECT 7423,'Sarn','Sarn' +--UNION SELECT 7424,'Dalin','Dalin' +--UNION SELECT 7431,'Mutten','Mutten' +--UNION SELECT 7430,'Rongellen','Rongellen' +--UNION SELECT 7432,'Zillis','Zillis' +--UNION SELECT 7433,'Donat','Donat' +--UNION SELECT 7433,'Mathon','Mathon' +--UNION SELECT 7433,'Wergenstein','Wergenstein' +--UNION SELECT 7433,'Lohn GR','Lohn GR' +--UNION SELECT 7434,'Sufers','Sufers' +--UNION SELECT 7436,'Medels','Medels im Rheinwald' +--UNION SELECT 7437,'Nufenen','Nufenen' +--UNION SELECT 7438,'Hinterrhein','Hinterrhein' +--UNION SELECT 7440,'Andeer','Andeer' +--UNION SELECT 7442,'Clugin','Clugin' +--UNION SELECT 7443,'Pignia','Pignia' +--UNION SELECT 7444,'Ausserferrera','Ausserferrera' +--UNION SELECT 7445,'Innerferrera','Innerferrera' +--UNION SELECT 7447,'Avers','Avers' +--UNION SELECT 7448,'Juf','Juf' +--UNION SELECT 7450,'Tiefencastel','Tiefencastel' +--UNION SELECT 7458,'Mon','Mon' +--UNION SELECT 7459,'Stierva','Stierva' +--UNION SELECT 7451,'Alvaschein','Alvaschein' +--UNION SELECT 7452,'Cunter','Cunter' +--UNION SELECT 7453,'Tinizong','Tinizong' +--UNION SELECT 7454,'Rona','Rona' +--UNION SELECT 7455,'Mulegns','Mulegns' +--UNION SELECT 7456,'Sur','Sur' +--UNION SELECT 7457,'Bivio','Bivio' +--UNION SELECT 7460,'Savognin','Savognin' +--UNION SELECT 7462,'Salouf','Salouf' +--UNION SELECT 7463,'Riom','Riom' +--UNION SELECT 7464,'Parsonz','Parsonz' +--UNION SELECT 7472,'Surava','Surava' +--UNION SELECT 7473,'Alvaneu Bad','Alvaneu Bad' +--UNION SELECT 7477,'Filisur','Filisur' +--UNION SELECT 7482,'Stugl/Stuls','Stugl/Stuls' +--UNION SELECT 7484,'Latsch','Latsch' +--UNION SELECT 7482,'Preda','Preda' +--UNION SELECT 7492,'Alvaneu Dorf','Alvaneu Dorf' +--UNION SELECT 7493,'Schmitten Albula','Schmitten Albula' +--UNION SELECT 7494,'Davos Wiesen','Davos Wiesen' +--UNION SELECT 7500,'St. Moritz','St. Moritz' +--UNION SELECT 7500,'St. Moritz 1','St. Moritz 1' +--UNION SELECT 7500,'St. Moritz 3','St. Moritz 3' +--UNION SELECT 7502,'Bever','Bever' +--UNION SELECT 7503,'Samedan','Samedan' +--UNION SELECT 7504,'Pontresina','Pontresina' +--UNION SELECT 7505,'Celerina','Celerina/Schlarigna' +--UNION SELECT 7513,'Silvaplana','Silvaplana' +--UNION SELECT 7514,'Sils/Segl Maria','Sils/Segl Maria' +--UNION SELECT 7514,'Fex','Fex' +--UNION SELECT 7515,'Sils/Segl Baselgia','Sils/Segl Baselgia' +--UNION SELECT 7516,'Maloja','Maloja' +--UNION SELECT 7517,'Plaun da Lej','Plaun da Lej' +--UNION SELECT 7522,'La Punt Chamues-ch','La Punt Chamues-ch' +--UNION SELECT 7523,'Madulain','Madulain' +--UNION SELECT 7524,'Zuoz','Zuoz' +--UNION SELECT 7525,'S-chanf','S-chanf' +--UNION SELECT 7526,'Cinuos-chel','Cinuos-chel' +--UNION SELECT 7527,'Brail','Brail' +--UNION SELECT 7530,'Zernez','Zernez' +--UNION SELECT 7532,'Tschierv','Tschierv' +--UNION SELECT 7533,'Fuldera','Fuldera' +--UNION SELECT 7535,'Valchava','Valchava' +--UNION SELECT 7542,'Susch','Susch' +--UNION SELECT 7543,'Lavin','Lavin' +--UNION SELECT 7545,'Guarda','Guarda' +--UNION SELECT 7546,'Ardez','Ardez' +--UNION SELECT 7550,'Scuol','Scuol' +--UNION SELECT 7551,'Ftan','Ftan' +--UNION SELECT 7552,'Vulpera','Vulpera' +--UNION SELECT 7553,'Tarasp','Tarasp' +--UNION SELECT 7554,'Sent','Sent' +--UNION SELECT 7556,'Ramosch','Ramosch' +--UNION SELECT 7558,'Strada','Strada' +--UNION SELECT 7559,'Tschlin','Tschlin' +--UNION SELECT 7560,'Martina','Martina' +--UNION SELECT 7562,'Samnaun-Compatsch','Samnaun-Compatsch' +--UNION SELECT 7563,'Samnaun Dorf','Samnaun Dorf' +--UNION SELECT 7602,'Casaccia','Casaccia' +--UNION SELECT 7603,'Vicosoprano','Vicosoprano' +--UNION SELECT 7604,'Borgonovo','Borgonovo' +--UNION SELECT 7605,'Stampa','Stampa' +--UNION SELECT 7606,'Promontogno','Promontogno' +--UNION SELECT 7610,'Soglio','Soglio' +--UNION SELECT 7608,'Castasegna','Castasegna' +--UNION SELECT 7742,'Poschiavo','Poschiavo' +--UNION SELECT 7743,'Brusio','Brusio' +--UNION SELECT 7747,'Viano','Viano' +--UNION SELECT 7744,'Campocologno','Campocologno' +--UNION SELECT 7710,'Ospizio Bernina','Ospizio Bernina' +--UNION SELECT 7741,'S. Carlo GR','S. Carlo Poschiavo' +--UNION SELECT 7745,'Li Curt','Li Curt' +--UNION SELECT 7746,'Le Prese','Le Prese' +--UNION SELECT 7748,'Campascio','Campascio' +--UNION SELECT 8102,'Oberengstringen','Oberengstringen' +--UNION SELECT 8103,'Unterengstringen','Unterengstringen' +--UNION SELECT 8104,'Weiningen ZH','Weiningen ZH' +--UNION SELECT 8105,'Regensdorf','Regensdorf' +--UNION SELECT 8105,'Watt','Watt' +--UNION SELECT 8107,'Buchs ZH','Buchs ZH' +--UNION SELECT 8112,'Otelfingen','Otelfingen' +--UNION SELECT 8113,'Boppelsen','Boppelsen' +--UNION SELECT 8121,'Benglen','Benglen' +--UNION SELECT 8122,'Binz','Binz' +--UNION SELECT 8123,'Ebmatingen','Ebmatingen' +--UNION SELECT 8124,'Maur','Maur' +--UNION SELECT 8125,'Zollikerberg','Zollikerberg' +--UNION SELECT 8126,'Zumikon','Zumikon' +--UNION SELECT 8127,'Forch','Forch' +--UNION SELECT 8132,'Hinteregg','Hinteregg' +--UNION SELECT 8133,'Esslingen','Esslingen' +--UNION SELECT 8134,'Adliswil','Adliswil' +--UNION SELECT 8134,'Adliswil 1','Adliswil 1' +--UNION SELECT 8134,'Adliswil Sood','Adliswil Sood' +--UNION SELECT 8135,'Langnau am Albis','Langnau am Albis' +--UNION SELECT 8136,'Gattikon','Gattikon' +--UNION SELECT 8143,'Uetliberg','Uetliberg' +--UNION SELECT 8142,'Uitikon Waldegg','Uitikon Waldegg' +--UNION SELECT 8143,'Stallikon','Stallikon' +--UNION SELECT 8152,'Glattbrugg','Glattbrugg' +--UNION SELECT 8152,'Opfikon','Opfikon' +--UNION SELECT 8154,'Oberglatt ZH','Oberglatt ZH' +--UNION SELECT 8155,'Niederhasli','Niederhasli' +--UNION SELECT 8156,'Oberhasli','Oberhasli' +--UNION SELECT 8157,'Dielsdorf','Dielsdorf' +--UNION SELECT 8158,'Regensberg','Regensberg' +--UNION SELECT 8162,'Steinmaur','Steinmaur' +--UNION SELECT 8164,'Bachs','Bachs' +--UNION SELECT 8166,'Niederweningen','Niederweningen' +--UNION SELECT 8172,'Niederglatt ZH','Niederglatt ZH' +--UNION SELECT 8173,'Neerach','Neerach' +--UNION SELECT 8174,'Stadel','Stadel b. Niederglatt' +--UNION SELECT 8175,'Windlach','Windlach' +--UNION SELECT 8182,'Hochfelden','Hochfelden' +--UNION SELECT 8185,'Winkel','Winkel' +--UNION SELECT 8192,'Glattfelden','Glattfelden' +--UNION SELECT 8193,'Eglisau','Eglisau' +--UNION SELECT 8195,'Wasterkingen','Wasterkingen' +--UNION SELECT 8196,'Wil ZH','Wil ZH' +--UNION SELECT 8197,'Rafz','Rafz' +--UNION SELECT 8200,'Schaffhausen','Schaffhausen' +--UNION SELECT 8200,'Schaffhausen 1','Schaffhausen 1' +--UNION SELECT 8200,'Schaffh 1 Zust','Schaffhausen 1 Zust' +--UNION SELECT 8200,'Schaffhausen','Schaffhausen' +--UNION SELECT 8200,'Schaffhausen','Schaffhausen' +--UNION SELECT 8200,'Schaffhausen','Schaffhausen' +--UNION SELECT 8200,'Schaffh. Breite','Schaffhausen Breite' +--UNION SELECT 8200,'Schaffhausen','Schaffhausen' +--UNION SELECT 8200,'Schaffhausen','Schaffhausen' +--UNION SELECT 8219,'Trasadingen','Trasadingen' +--UNION SELECT 8228,'Beggingen','Beggingen' +--UNION SELECT 8231,'Hemmental','Hemmental' +--UNION SELECT 8234,'Stetten SH','Stetten SH' +--UNION SELECT 8235,'Lohn SH','Lohn SH' +--UNION SELECT 8236,'Opfertshofen SH','Opfertshofen SH' +--UNION SELECT 8242,'Bibern SH','Bibern SH' +--UNION SELECT 8242,'Hofen SH','Hofen SH' +--UNION SELECT 8243,'Altdorf SH','Altdorf SH' +--UNION SELECT 8212,'Neuhausen','Neuhausen am Rheinfall' +--UNION SELECT 8212,'Neuhausen 1','Neuhausen am Rheinfall 1' +--UNION SELECT 8213,'Neunkirch','Neunkirch' +--UNION SELECT 8215,'Hallau','Hallau' +--UNION SELECT 8216,'Oberhallau','Oberhallau' +--UNION SELECT 8217,'Wilchingen','Wilchingen' +--UNION SELECT 8218,'Osterfingen','Osterfingen' +--UNION SELECT 8222,'Beringen','Beringen' +--UNION SELECT 8223,'Guntmadingen','Guntmadingen' +--UNION SELECT 8225,'Siblingen','Siblingen' +--UNION SELECT 8226,'Schleitheim','Schleitheim' +--UNION SELECT 8232,'Merishausen','Merishausen' +--UNION SELECT 8233,'Bargen SH','Bargen SH' +--UNION SELECT 8240,'Thayngen','Thayngen' +--UNION SELECT 8241,'Barzheim','Barzheim' +--UNION SELECT 8245,'Feuerthalen','Feuerthalen' +--UNION SELECT 8246,'Langwiesen','Langwiesen' +--UNION SELECT 8247,'Flurlingen','Flurlingen' +--UNION SELECT 8252,'Schlatt TG','Schlatt TG' +--UNION SELECT 8254,'Basadingen','Basadingen' +--UNION SELECT 8259,'Kaltenbach','Kaltenbach' +--UNION SELECT 8253,'Diessenhofen','Diessenhofen' +--UNION SELECT 8255,'Schlattingen','Schlattingen' +--UNION SELECT 8259,'Etzwilen','Etzwilen' +--UNION SELECT 8260,'Stein am Rhein','Stein am Rhein' +--UNION SELECT 8259,'Wagenhausen','Wagenhausen' +--UNION SELECT 8261,'Hemishofen','Hemishofen' +--UNION SELECT 8262,'Ramsen','Ramsen' +--UNION SELECT 8263,'Buch SH','Buch SH' +--UNION SELECT 8264,'Eschenz','Eschenz' +--UNION SELECT 8265,'Mammern','Mammern' +--UNION SELECT 8266,'Steckborn','Steckborn' +--UNION SELECT 8267,'Berlingen','Berlingen' +--UNION SELECT 8268,'Mannenbach-Salenst','Mannenbach-Salenstein' +--UNION SELECT 8272,'Ermatingen','Ermatingen' +--UNION SELECT 8273,'Triboltingen','Triboltingen' +--UNION SELECT 8280,'Kreuzlingen','Kreuzlingen' +--UNION SELECT 8280,'Kreuzlingen 1','Kreuzlingen 1' +--UNION SELECT 8280,'Kreuzlingen ceha!','Kreuzlingen ceha!' +--UNION SELECT 8280,'Kreuzlingen 3','Kreuzlingen 3' +--UNION SELECT 8301,'Glattzentrum','Glattzentrum b. Wallisellen' +--UNION SELECT 8302,'Kloten','Kloten' +--UNION SELECT 8303,'Bassersdorf','Bassersdorf' +--UNION SELECT 8304,'Wallisellen','Wallisellen' +--UNION SELECT 8305,'Dietlikon','Dietlikon' +--UNION SELECT 8307,'Effretikon','Effretikon' +--UNION SELECT 8315,'Lindau','Lindau' +--UNION SELECT 8308,'Illnau','Illnau' +--UNION SELECT 8308,'Agasul','Agasul' +--UNION SELECT 8310,'Kemptthal','Kemptthal' +--UNION SELECT 8312,'Winterberg ZH','Winterberg ZH' +--UNION SELECT 8307,'Ottikon b.Kemptth.','Ottikon b. Kemptthal' +--UNION SELECT 8314,'Kyburg','Kyburg' +--UNION SELECT 8320,'Fehraltorf','Fehraltorf' +--UNION SELECT 8489,'Wildberg','Wildberg' +--UNION SELECT 8322,'Madetswil','Madetswil' +--UNION SELECT 8331,'Auslikon','Auslikon' +--UNION SELECT 8332,'Russikon','Russikon' +--UNION SELECT 8335,'Hittnau','Hittnau' +--UNION SELECT 8340,'Hinwil','Hinwil' +--UNION SELECT 8342,'Wernetshausen','Wernetshausen' +--UNION SELECT 8345,'Adetswil','Adetswil' +--UNION SELECT 8352,'Elsau','Elsau' +--UNION SELECT 8353,'Elgg','Elgg' +--UNION SELECT 8354,'Hofstetten ZH','Hofstetten ZH' +--UNION SELECT 8355,'Aadorf','Aadorf' +--UNION SELECT 8356,'Ettenhausen TG','Ettenhausen TG' +--UNION SELECT 8357,'Guntershausen','Guntershausen b. Aadorf' +--UNION SELECT 8360,'Eschlikon TG','Eschlikon TG' +--UNION SELECT 8362,'Balterswil','Balterswil' +--UNION SELECT 8363,'Bichelsee','Bichelsee' +--UNION SELECT 8370,'Sirnach','Sirnach' +--UNION SELECT 8372,'Wiezikon b.Sirnach','Wiezikon b. Sirnach' +--UNION SELECT 8374,'Oberwangen TG','Oberwangen TG' +--UNION SELECT 8374,'Dussnang','Dussnang' +--UNION SELECT 8376,'Fischingen','Fischingen' +--UNION SELECT 8376,'Au TG','Au TG' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur 1 Ann.','Winterthur 1 Annahme' +--UNION SELECT 8400,'Winterthur Zust','Winterthur Zustellung' +--UNION SELECT 8400,'Winterthur Kaserne','Winterthur Kaserne' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8400,'Winterthur','Winterthur' +--UNION SELECT 8412,'Aesch Neftenbach','Aesch Neftenbach' +--UNION SELECT 8413,'Neftenbach','Neftenbach' +--UNION SELECT 8414,'Buch am Irchel','Buch am Irchel' +--UNION SELECT 8415,'Berg am Irchel','Berg am Irchel' +--UNION SELECT 8416,'Flaach','Flaach' +--UNION SELECT 8418,'Schlatt ZH','Schlatt ZH' +--UNION SELECT 8422,'Pfungen','Pfungen' +--UNION SELECT 8424,'Embrach','Embrach' +--UNION SELECT 8425,'Oberembrach','Oberembrach' +--UNION SELECT 8426,'Lufingen','Lufingen' +--UNION SELECT 8428,'Teufen ZH','Teufen ZH' +--UNION SELECT 8192,'Zweidlen','Zweidlen' +--UNION SELECT 8187,'Weiach','Weiach' +--UNION SELECT 5466,'Kaiserstuhl AG','Kaiserstuhl AG' +--UNION SELECT 5467,'Fisibach','Fisibach' +--UNION SELECT 5332,'Rekingen AG','Rekingen AG' +--UNION SELECT 5330,'Bad Zurzach','Bad Zurzach' +--UNION SELECT 5323,'Rietheim','Rietheim' +--UNION SELECT 5465,'Mellikon','Mellikon' +--UNION SELECT 5463,'Wislikofen','Wislikofen' +--UNION SELECT 5462,'Siglistorf','Siglistorf' +--UNION SELECT 5333,'Baldingen','Baldingen' +--UNION SELECT 8442,'Hettlingen','Hettlingen' +--UNION SELECT 8444,'Henggart','Henggart' +--UNION SELECT 8447,'Dachsen','Dachsen' +--UNION SELECT 8248,'Uhwiesen','Uhwiesen' +--UNION SELECT 8450,'Andelfingen','Andelfingen' +--UNION SELECT 8453,'Alten','Alten' +--UNION SELECT 8451,'Kleinandelfingen','Kleinandelfingen' +--UNION SELECT 8452,'Adlikon','Adlikon b. Andelfingen' +--UNION SELECT 8457,'Humlikon','Humlikon' +--UNION SELECT 8458,'Dorf','Dorf' +--UNION SELECT 8459,'Volken','Volken' +--UNION SELECT 8454,'Buchberg','Buchberg' +--UNION SELECT 8460,'Marthalen','Marthalen' +--UNION SELECT 8464,'Ellikon am Rhein','Ellikon am Rhein' +--UNION SELECT 8461,'Oerlingen','Oerlingen' +--UNION SELECT 8465,'Rudolfingen','Rudolfingen' +--UNION SELECT 8462,'Rheinau','Rheinau' +--UNION SELECT 8463,'Benken ZH','Benken ZH' +--UNION SELECT 8472,'Seuzach','Seuzach' +--UNION SELECT 8400,'Reutlingen','Reutlingen Winterthur' +--UNION SELECT 8474,'Dinhard','Dinhard' +--UNION SELECT 8475,'Ossingen','Ossingen' +--UNION SELECT 8476,'Unterstammheim','Unterstammheim' +--UNION SELECT 8477,'Oberstammheim','Oberstammheim' +--UNION SELECT 8478,'Thalheim','Thalheim an der Thur' +--UNION SELECT 8479,'Altikon','Altikon' +--UNION SELECT 8467,'Truttikon','Truttikon' +--UNION SELECT 8468,'Guntalingen','Guntalingen' +--UNION SELECT 8468,'Waltalingen','Waltalingen' +--UNION SELECT 8482,'Sennhof','Sennhof Winterthur' +--UNION SELECT 8483,'Kollbrunn','Kollbrunn' +--UNION SELECT 8484,'Weisslingen','Weisslingen' +--UNION SELECT 8484,'Neschwil','Neschwil' +--UNION SELECT 8484,'Theilingen','Theilingen' +--UNION SELECT 8487,'Zell ZH','Zell ZH' +--UNION SELECT 8488,'Turbenthal','Turbenthal' +--UNION SELECT 8492,'Wila','Wila' +--UNION SELECT 8493,'Saland','Saland' +--UNION SELECT 8494,'Bauma','Bauma' +--UNION SELECT 8497,'Fischenthal','Fischenthal' +--UNION SELECT 8498,'Gibswil','Gibswil' +--UNION SELECT 8499,'Sternenberg','Sternenberg' +--UNION SELECT 8500,'Frauenfeld','Frauenfeld' +--UNION SELECT 8500,'Frauenfeld 1','Frauenfeld 1' +--UNION SELECT 8500,'Gerlikon','Gerlikon' +--UNION SELECT 8500,'Frauenfeld 1 Zust','Frauenfeld 1 Zustellung' +--UNION SELECT 8500,'Frauenfeld','Frauenfeld' +--UNION SELECT 8500,'Frauenfeld Talbach','Frauenfeld Talbach' +--UNION SELECT 8500,'Frauenfeld Kurzdor','Frauenfeld Kurzdorf' +--UNION SELECT 8505,'Pfyn','Pfyn' +--UNION SELECT 8506,'Lanzenneunforn','Lanzenneunforn' +--UNION SELECT 8508,'Homburg','Homburg' +--UNION SELECT 8512,'Thundorf','Thundorf' +--UNION SELECT 8512,'Lustdorf','Lustdorf' +--UNION SELECT 8514,'Amlikon-Bissegg','Amlikon-Bissegg' +--UNION SELECT 8523,'Hagenbuch ZH','Hagenbuch ZH' +--UNION SELECT 8524,'Uesslingen','Uesslingen' +--UNION SELECT 8525,'Niederneunforn','Niederneunforn' +--UNION SELECT 8526,'Oberneunforn','Oberneunforn' +--UNION SELECT 8532,'Warth','Warth' +--UNION SELECT 8524,'Buch b. Frauenfeld','Buch b. Frauenfeld' +--UNION SELECT 8532,'Weiningen TG','Weiningen TG' +--UNION SELECT 8535,'Herdern','Herdern' +--UNION SELECT 8537,'Nussbaumen TG','Nussbaumen TG' +--UNION SELECT 8542,'Wiesendangen','Wiesendangen' +--UNION SELECT 8400,'StadelWinterthur','Stadel Winterthur' +--UNION SELECT 8545,'Rickenbach ZH','Rickenbach ZH' +--UNION SELECT 8544,'Attikon','Attikon' +--UNION SELECT 8546,'Islikon','Islikon' +--UNION SELECT 8547,'Gachnang','Gachnang' +--UNION SELECT 8548,'Ellikon a d Thur','Ellikon an der Thur' +--UNION SELECT 8552,'Felben-Wellhausen','Felben-Wellhausen' +--UNION SELECT 8554,'Bonau','Bonau' +--UNION SELECT 8556,'Wigoltingen','Wigoltingen' +--UNION SELECT 8564,'Lipperswil','Lipperswil' +--UNION SELECT 8558,'Raperswilen','Raperswilen' +--UNION SELECT 8269,'Fruthwilen','Fruthwilen' +--UNION SELECT 8561,'Ottoberg','Ottoberg' +--UNION SELECT 8565,'Hugelshofen','Hugelshofen' +--UNION SELECT 8566,'Dotnacht','Dotnacht' +--UNION SELECT 8566,'Neuwilen','Neuwilen' +--UNION SELECT 8564,'Engwilen','Engwilen' +--UNION SELECT 8570,'Weinfelden','Weinfelden' +--UNION SELECT 8572,'Berg TG','Berg TG' +--UNION SELECT 8573,'Siegershausen','Siegershausen' +--UNION SELECT 8574,'Illighausen','Illighausen' +--UNION SELECT 8576,'Mauren TG','Mauren TG' +--UNION SELECT 9217,'Neukirch a.d. Thur','Neukirch an der Thur' +--UNION SELECT 8580,'Amriswil','Amriswil' +--UNION SELECT 8580,'Sommeri','Sommeri' +--UNION SELECT 8582,'Dozwil','Dozwil' +--UNION SELECT 8580,'Hagenwil','Hagenwil b. Amriswil' +--UNION SELECT 8581,'Schocherswil','Schocherswil' +--UNION SELECT 8588,'Zihlschlacht','Zihlschlacht' +--UNION SELECT 8589,'Sitterdorf','Sitterdorf' +--UNION SELECT 8583,'Sulgen','Sulgen' +--UNION SELECT 8583,'Donzhausen','Donzhausen' +--UNION SELECT 8584,'Leimbach TG','Leimbach TG' +--UNION SELECT 8584,'Opfershofen TG','Opfershofen TG' +--UNION SELECT 8585,'Mattwil','Mattwil' +--UNION SELECT 8585,'Happerswil','Happerswil' +--UNION SELECT 8585,'Langrickenbach','Langrickenbach' +--UNION SELECT 8585,'Zuben','Zuben' +--UNION SELECT 8586,'Erlen','Erlen' +--UNION SELECT 8586,'Andwil TG','Andwil TG' +--UNION SELECT 8586,'Riedt b. Erlen','Riedt b. Erlen' +--UNION SELECT 8587,'Oberaach','Oberaach' +--UNION SELECT 8590,'Romanshorn','Romanshorn' +--UNION SELECT 8599,'Salmsach','Salmsach' +--UNION SELECT 8592,'Uttwil','Uttwil' +--UNION SELECT 8593,'Kesswil','Kesswil' +--UNION SELECT 8595,'Altnau','Altnau' +--UNION SELECT 8596,'Scherzingen','Scherzingen' +--UNION SELECT 8597,'Landschlacht','Landschlacht' +--UNION SELECT 8598,'Bottighofen','Bottighofen' +--UNION SELECT 8603,'Schwerzenbach','Schwerzenbach' +--UNION SELECT 8604,'Volketswil','Volketswil' +--UNION SELECT 8605,'Gutenswil','Gutenswil' +--UNION SELECT 8606,'Greifensee','Greifensee' +--UNION SELECT 8608,'Bubikon','Bubikon' +--UNION SELECT 8610,'Uster','Uster' +--UNION SELECT 8610,'Uster 1','Uster 1' +--UNION SELECT 8610,'Uster Niederuster','Uster Niederuster' +--UNION SELECT 8610,'Uster Nossikon','Uster Nossikon' +--UNION SELECT 8614,'Bertschikon Gossau','Bertschikon Gossau ZH' +--UNION SELECT 8615,'Wermatswil','Wermatswil' +--UNION SELECT 8616,'Riedikon','Riedikon' +--UNION SELECT 8618,'Oetwil am See','Oetwil am See' +--UNION SELECT 8620,'Wetzikon ZH','Wetzikon ZH' +--UNION SELECT 8620,'Wetzikon ZH 1','Wetzikon ZH 1' +--UNION SELECT 8620,'Wetzikon ZH Roben.','Wetzikon ZH Robenhausen' +--UNION SELECT 8620,'Wetzikon ZH','Wetzikon ZH' +--UNION SELECT 8620,'Wetzikon ZH','Wetzikon ZH' +--UNION SELECT 8625,'Gossau ZH','Gossau ZH' +--UNION SELECT 8626,'Ottikon','Ottikon Gossau ZH' +--UNION SELECT 8632,'Tann','Tann' +--UNION SELECT 8633,'Wolfhausen','Wolfhausen' +--UNION SELECT 8634,'Hombrechtikon','Hombrechtikon' +--UNION SELECT 8636,'Wald ZH','Wald ZH' +--UNION SELECT 8639,'Faltigberg','Faltigberg' +--UNION SELECT 8637,'Laupen ZH','Laupen ZH' +--UNION SELECT 8638,'Goldingen','Goldingen' +--UNION SELECT 8640,'Rapperswil SG','Rapperswil SG' +--UNION SELECT 8640,'Kempraten','Kempraten' +--UNION SELECT 8640,'Rapperswil SG Zust','Rapperswil SG Zustellung' +--UNION SELECT 8645,'Jona','Jona' +--UNION SELECT 8646,'Wagen','Wagen' +--UNION SELECT 8702,'Zollikon','Zollikon' +--UNION SELECT 8702,'Zollikon Dorf','Zollikon Dorf' +--UNION SELECT 8703,'Erlenbach ZH','Erlenbach ZH' +--UNION SELECT 8704,'Herrliberg','Herrliberg' +--UNION SELECT 8706,'Meilen','Meilen' +--UNION SELECT 8707,'Uetikon am See','Uetikon am See' +--UNION SELECT 8713,'Uerikon','Uerikon' +--UNION SELECT 8714,'Feldbach','Feldbach' +--UNION SELECT 8715,'Bollingen','Bollingen' +--UNION SELECT 8716,'Schmerikon','Schmerikon' +--UNION SELECT 8717,'Benken SG','Benken SG' +--UNION SELECT 8722,'Kaltbrunn','Kaltbrunn' +--UNION SELECT 8723,'Rufi','Rufi' +--UNION SELECT 8725,'Ernetschwil','Ernetschwil' +--UNION SELECT 8726,'Ricken SG','Ricken SG' +--UNION SELECT 8727,'Walde SG','Walde SG' +--UNION SELECT 8730,'Uznach','Uznach' +--UNION SELECT 8732,'Neuhaus SG','Neuhaus SG' +--UNION SELECT 8733,'Eschenbach SG','Eschenbach SG' +--UNION SELECT 8734,'Ermenswil','Ermenswil' +--UNION SELECT 8735,'St. Gallenkappel','St. Gallenkappel' +--UNION SELECT 8737,'Gommiswald','Gommiswald' +--UNION SELECT 8738,'Uetliburg SG','Uetliburg SG' +--UNION SELECT 8739,'Rieden SG','Rieden SG' +--UNION SELECT 8750,'Glarus','Glarus' +--UNION SELECT 8750,'Riedern','Riedern' +--UNION SELECT 8751,'Urnerboden','Urnerboden' +--UNION SELECT 8753,'Mollis','Mollis' +--UNION SELECT 8754,'Netstal','Netstal' +--UNION SELECT 8755,'Ennenda','Ennenda' +--UNION SELECT 8762,'Schwanden GL','Schwanden GL' +--UNION SELECT 8762,'Sool','Sool' +--UNION SELECT 8765,'Engi','Engi' +--UNION SELECT 8766,'Matt','Matt' +--UNION SELECT 8767,'Elm','Elm' +--UNION SELECT 8772,'Nidfurn','Nidfurn' +--UNION SELECT 8773,'Haslen GL','Haslen GL' +--UNION SELECT 8775,'Luchsingen','Luchsingen' +--UNION SELECT 8777,'Diesbach GL','Diesbach GL' +--UNION SELECT 8783,'Linthal','Linthal' +--UNION SELECT 8784,'Braunwald','Braunwald' +--UNION SELECT 8800,'Thalwil','Thalwil' +--UNION SELECT 8802,'Kilchberg ZH','Kilchberg ZH' +--UNION SELECT 8804,'Au ZH','Au ZH' +--UNION SELECT 8805,'Richterswil','Richterswil' +--UNION SELECT 8805,'Richterswil Burghd','Richterswil Burghalden SOB' +--UNION SELECT 8807,'Freienbach','Freienbach' +--UNION SELECT 8810,'Horgen','Horgen' +--UNION SELECT 8810,'Horgen 1','Horgen 1' +--UNION SELECT 8810,'Horgen','Horgen' +--UNION SELECT 8815,'Horgenberg','Horgenberg' +--UNION SELECT 8816,'Hirzel','Hirzel' +--UNION SELECT 8832,'Wollerau','Wollerau' +--UNION SELECT 8833,'Samstagern','Samstagern' +--UNION SELECT 8834,'Schindellegi','Schindellegi' +--UNION SELECT 8835,'Feusisberg','Feusisberg' +--UNION SELECT 8836,'Bennau','Bennau' +--UNION SELECT 8840,'Einsiedeln','Einsiedeln' +--UNION SELECT 8840,'Trachslau','Trachslau' +--UNION SELECT 8849,'Alpthal','Alpthal' +--UNION SELECT 8846,'Willerzell','Willerzell' +--UNION SELECT 8847,'Egg SZ','Egg SZ' +--UNION SELECT 8841,'Gross','Gross' +--UNION SELECT 8844,'Euthal','Euthal' +--UNION SELECT 8845,'Studen SZ','Studen SZ' +--UNION SELECT 8842,'Unteriberg','Unteriberg' +--UNION SELECT 8843,'Oberiberg','Oberiberg' +--UNION SELECT 8852,'Altendorf','Altendorf' +--UNION SELECT 8853,'Lachen SZ','Lachen SZ' +--UNION SELECT 8854,'Siebnen','Siebnen' +--UNION SELECT 8854,'Galgenen','Galgenen' +--UNION SELECT 8855,'Wangen SZ','Wangen SZ' +--UNION SELECT 8856,'Tuggen','Tuggen' +--UNION SELECT 8857,'Vorderthal','Vorderthal' +--UNION SELECT 8858,'Innerthal','Innerthal' +--UNION SELECT 8863,'Buttikon SZ','Buttikon SZ' +--UNION SELECT 8864,'Reichenburg','Reichenburg' +--UNION SELECT 8865,'Bilten','Bilten' +--UNION SELECT 8867,'Niederurnen','Niederurnen' +--UNION SELECT 8868,'Oberurnen','Oberurnen' +--UNION SELECT 8872,'Weesen','Weesen' +--UNION SELECT 8873,'Amden','Amden' +--UNION SELECT 8758,'Obstalden','Obstalden' +--UNION SELECT 8757,'Filzbach','Filzbach' +--UNION SELECT 8877,'Murg','Murg' +--UNION SELECT 8878,'Quinten','Quinten' +--UNION SELECT 8880,'Walenstadt','Walenstadt' +--UNION SELECT 8881,'Walenstadtberg','Walenstadtberg' +--UNION SELECT 8881,'Tscherlach','Tscherlach' +--UNION SELECT 8882,'Unterterzen','Unterterzen' +--UNION SELECT 8883,'Quarten','Quarten' +--UNION SELECT 8884,'Oberterzen','Oberterzen' +--UNION SELECT 8885,'Mols','Mols' +--UNION SELECT 8887,'Mels','Mels' +--UNION SELECT 8889,'Plons','Plons' +--UNION SELECT 8888,'Heiligkreuz Mels','Heiligkreuz Mels' +--UNION SELECT 8890,'Flums','Flums' +--UNION SELECT 8892,'Berschis','Berschis' +--UNION SELECT 8893,'Flums Hochwiese','Flums Hochwiese' +--UNION SELECT 8894,'Flumserberg Saxli','Flumserberg Saxli' +--UNION SELECT 8895,'Flumserberg Portel','Flumserberg Portels' +--UNION SELECT 8896,'Flumserberg Bergh','Flumserberg Bergheim' +--UNION SELECT 8897,'Flumserberg Theim','Flumserberg Tannenheim' +--UNION SELECT 8898,'Flumserberg Tboden','Flumserberg Tannenbodenalp' +--UNION SELECT 8902,'Urdorf','Urdorf' +--UNION SELECT 8903,'Birmensdorf ZH','Birmensdorf ZH' +--UNION SELECT 8904,'Aesch ZH','Aesch ZH' +--UNION SELECT 8905,'Arni-Islisberg','Arni-Islisberg' +--UNION SELECT 8906,'Bonstetten','Bonstetten' +--UNION SELECT 8907,'Wettswil','Wettswil' +--UNION SELECT 8908,'Hedingen','Hedingen' +--UNION SELECT 8910,'Affoltern am Albis','Affoltern am Albis' +--UNION SELECT 8909,'Zwillikon','Zwillikon' +--UNION SELECT 8911,'Rifferswil','Rifferswil' +--UNION SELECT 8912,'Obfelden','Obfelden' +--UNION SELECT 8913,'Ottenbach','Ottenbach' +--UNION SELECT 8914,'Aeugst am Albis','Aeugst am Albis' +--UNION SELECT 8914,'Aeugstertal','Aeugstertal' +--UNION SELECT 8915,'Hausen am Albis','Hausen am Albis' +--UNION SELECT 8916,'Jonen','Jonen' +--UNION SELECT 8917,'Oberlunkhofen','Oberlunkhofen' +--UNION SELECT 8918,'Unterlunkhofen','Unterlunkhofen' +--UNION SELECT 8919,'Rottenschwil','Rottenschwil' +--UNION SELECT 8925,'Ebertswil','Ebertswil' +--UNION SELECT 8926,'Kappel am Albis','Kappel am Albis' +--UNION SELECT 8932,'Mettmenstetten','Mettmenstetten' +--UNION SELECT 8933,'Maschwanden','Maschwanden' +--UNION SELECT 8934,'Knonau','Knonau' +--UNION SELECT 8942,'Oberrieden','Oberrieden' +--UNION SELECT 8135,'Sihlbrugg Station','Sihlbrugg Station' +--UNION SELECT 6340,'Sihlbrugg','Sihlbrugg' +--UNION SELECT 8951,'Fahrweid','Fahrweid' +--UNION SELECT 8952,'Schlieren','Schlieren' +--UNION SELECT 8953,'Dietikon','Dietikon' +--UNION SELECT 8953,'Dietikon 1','Dietikon 1' +--UNION SELECT 8953,'Dietikon Glanzenb.','Dietikon Glanzenberg' +--UNION SELECT 8954,'Geroldswil','Geroldswil' +--UNION SELECT 8955,'Oetwil a.d. Limmat','Oetwil an der Limmat' +--UNION SELECT 8956,'Killwangen','Killwangen' +--UNION SELECT 8957,'Spreitenbach','Spreitenbach' +--UNION SELECT 8962,'Bergdietikon','Bergdietikon' +--UNION SELECT 8964,'Rudolfstetten','Rudolfstetten' +--UNION SELECT 8965,'Berikon','Berikon' +--UNION SELECT 8966,'Oberwil-Lieli','Oberwil-Lieli' +--UNION SELECT 8967,'Widen','Widen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen 1 Ann.','St. Gallen 1 Annahme' +--UNION SELECT 9000,'St. Gallen Dist Ba','St. Gallen Dist Ba' +--UNION SELECT 9000,'St. Gallen Kaserne','St. Gallen Kaserne' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen Lachen','St. Gallen Lachen-Vonwil' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9030,'Abtwil SG','Abtwil SG' +--UNION SELECT 9032,'Engelburg','Engelburg' +--UNION SELECT 9033,'Untereggen','Untereggen' +--UNION SELECT 9034,'Eggersriet','Eggersriet' +--UNION SELECT 9035,'Grub AR','Grub AR' +--UNION SELECT 9036,'Grub SG','Grub SG' +--UNION SELECT 9037,'Speicherschwendi','Speicherschwendi' +--UNION SELECT 9038,'Rehetobel','Rehetobel' +--UNION SELECT 9042,'Speicher','Speicher' +--UNION SELECT 9043,'Trogen','Trogen' +--UNION SELECT 9044,'Wald AR','Wald AR' +--UNION SELECT 9050,'Appenzell','Appenzell' +--UNION SELECT 9052,'Niederteufen','Niederteufen' +--UNION SELECT 9053,'Teufen AR','Teufen AR' +--UNION SELECT 9054,'Haslen AI','Haslen AI' +--UNION SELECT 9056,'Gais','Gais' +--UNION SELECT 9057,'Weissbad','Weissbad' +--UNION SELECT 9063,'Stein AR','Stein AR' +--UNION SELECT 9064,'Hundwil','Hundwil' +--UNION SELECT 9100,'Herisau','Herisau' +--UNION SELECT 9100,'Herisau 1','Herisau 1' +--UNION SELECT 9100,'Herisau','Herisau' +--UNION SELECT 9103,'Schwellbrunn','Schwellbrunn' +--UNION SELECT 9104,'Waldstatt','Waldstatt' +--UNION SELECT 9108,'Gonten','Gonten' +--UNION SELECT 9112,'Schachen b.Herisau','Schachen b. Herisau' +--UNION SELECT 9113,'Degersheim','Degersheim' +--UNION SELECT 9114,'Hoffeld','Hoffeld' +--UNION SELECT 9115,'Dicken','Dicken' +--UNION SELECT 9116,'Wolfertswil','Wolfertswil' +--UNION SELECT 9122,'Mogelsberg','Mogelsberg' +--UNION SELECT 9123,'Nassen','Nassen' +--UNION SELECT 9125,'Brunnadern','Brunnadern' +--UNION SELECT 9126,'Necker','Necker' +--UNION SELECT 9127,'St. Peterzell','St. Peterzell' +--UNION SELECT 9200,'Gossau SG','Gossau SG' +--UNION SELECT 9200,'Gossau SG 1','Gossau SG 1' +--UNION SELECT 9200,'Gossau SG Mettend.','Gossau SG Mettendorf' +--UNION SELECT 9203,'Niederwil SG','Niederwil SG' +--UNION SELECT 9204,'Andwil SG','Andwil SG' +--UNION SELECT 9205,'Waldkirch','Waldkirch' +--UNION SELECT 9212,'Arnegg','Arnegg' +--UNION SELECT 9213,'Hauptwil','Hauptwil' +--UNION SELECT 9216,'Heldswil','Heldswil' +--UNION SELECT 9215,'Buhwil','Buhwil' +--UNION SELECT 9220,'Bischofszell','Bischofszell' +--UNION SELECT 9223,'Schweizersholz','Schweizersholz' +--UNION SELECT 9223,'Halden','Halden' +--UNION SELECT 9216,'Hohentannen','Hohentannen' +--UNION SELECT 9225,'Wilen Gottshaus','Wilen Gottshaus' +--UNION SELECT 9225,'St. Pelagiberg','St. Pelagiberg' +--UNION SELECT 9230,'Flawil','Flawil' +--UNION SELECT 9230,'Flawil 1','Flawil 1' +--UNION SELECT 9230,'Flawil 2','Flawil 2 Botsberg' +--UNION SELECT 9231,'Egg Flawil','Egg Flawil' +--UNION SELECT 9604,'Oberrindal','Oberrindal' +--UNION SELECT 9240,'Uzwil','Uzwil' +--UNION SELECT 9240,'Niederglatt SG','Niederglatt SG' +--UNION SELECT 9242,'Oberuzwil','Oberuzwil' +--UNION SELECT 9248,'Bichwil','Bichwil' +--UNION SELECT 9243,'Jonschwil','Jonschwil' +--UNION SELECT 9244,'Niederuzwil','Niederuzwil' +--UNION SELECT 9247,'Henau','Henau' +--UNION SELECT 9249,'Algetshausen','Algetshausen' +--UNION SELECT 9300,'Wittenbach','Wittenbach' +--UNION SELECT 9304,'Bernhardzell','Bernhardzell' +--UNION SELECT 9305,'Berg SG','Berg SG' +--UNION SELECT 9306,'Freidorf TG','Freidorf TG' +--UNION SELECT 9315,'Winden','Winden' +--UNION SELECT 9313,'Muolen','Muolen' +--UNION SELECT 9314,'Steinebrunn','Steinebrunn' +--UNION SELECT 9315,'Neukirch Egnach','Neukirch Egnach' +--UNION SELECT 9320,'Arbon','Arbon' +--UNION SELECT 9320,'Frasnacht','Frasnacht' +--UNION SELECT 9320,'Stachen','Stachen' +--UNION SELECT 9322,'Egnach','Egnach' +--UNION SELECT 9323,'Steinach','Steinach' +--UNION SELECT 9325,'Roggwil TG','Roggwil TG' +--UNION SELECT 9326,'Horn','Horn' +--UNION SELECT 9400,'Rorschach','Rorschach' +--UNION SELECT 9404,'Rorschacherberg','Rorschacherberg' +--UNION SELECT 9403,'Goldach','Goldach' +--UNION SELECT 9405,'Wienacht-Tobel','Wienacht-Tobel' +--UNION SELECT 9410,'Heiden','Heiden' +--UNION SELECT 9411,'Reute AR','Reute AR' +--UNION SELECT 9413,'Oberegg','Oberegg' +--UNION SELECT 9411,'Schachen b. Reute','Schachen b. Reute' +--UNION SELECT 9422,'Staad SG','Staad SG' +--UNION SELECT 9423,'Altenrhein','Altenrhein' +--UNION SELECT 9424,'Rheineck','Rheineck' +--UNION SELECT 9425,'Thal','Thal' +--UNION SELECT 9426,'Lutzenberg','Lutzenberg' +--UNION SELECT 9427,'Wolfhalden','Wolfhalden' +--UNION SELECT 9428,'Walzenhausen','Walzenhausen' +--UNION SELECT 9430,'St. Margrethen SG','St. Margrethen SG' +--UNION SELECT 9428,'Platz','Platz AR' +--UNION SELECT 9434,'Au SG','Au SG' +--UNION SELECT 9435,'Heerbrugg','Heerbrugg' +--UNION SELECT 9436,'Balgach','Balgach' +--UNION SELECT 9437,'Marbach SG','Marbach SG' +--UNION SELECT 9442,'Berneck','Berneck' +--UNION SELECT 9443,'Widnau','Widnau' +--UNION SELECT 9444,'Diepoldsau','Diepoldsau' +--UNION SELECT 9445,'Rebstein','Rebstein' +--UNION SELECT 9451,'Kriessern','Kriessern' +--UNION SELECT 9452,'Hinterforst','Hinterforst' +--UNION SELECT 9453,'Eichberg','Eichberg' +--UNION SELECT 9462,'Montlingen','Montlingen' +--UNION SELECT 9463,'Oberriet SG','Oberriet SG' +--UNION SELECT 9464,'Lienz','Lienz' +--UNION SELECT 9465,'Salez','Salez' +--UNION SELECT 9466,'Sennwald','Sennwald' +--UNION SELECT 9468,'Sax','Sax' +--UNION SELECT 9469,'Haag Rheintal','Haag Rheintal' +--UNION SELECT 9470,'Buchs SG','Buchs SG' +--UNION SELECT 9470,'Buchs SG 1','Buchs SG 1' +--UNION SELECT 9472,'Grabs','Grabs' +--UNION SELECT 9472,'Grabserberg','Grabserberg' +--UNION SELECT 9473,'Gams','Gams' +--UNION SELECT 9475,'Sevelen','Sevelen' +--UNION SELECT 9476,'Weite','Weite' +--UNION SELECT 9478,'Azmoos','Azmoos' +--UNION SELECT 9479,'Oberschan','Oberschan' +--UNION SELECT 9485,'Nendeln','Nendeln' +--UNION SELECT 9486,'Schaanwald','Schaanwald' +--UNION SELECT 9487,'Gamprin-Bendern','Gamprin-Bendern' +--UNION SELECT 9488,'Schellenberg','Schellenberg' +--UNION SELECT 9490,'Vaduz','Vaduz' +--UNION SELECT 9491,'Ruggell','Ruggell' +--UNION SELECT 9492,'Eschen','Eschen' +--UNION SELECT 9493,'Mauren FL','Mauren FL' +--UNION SELECT 9494,'Schaan','Schaan' +--UNION SELECT 9495,'Triesen','Triesen' +--UNION SELECT 9496,'Balzers','Balzers' +--UNION SELECT 9497,'Triesenberg','Triesenberg' +--UNION SELECT 9500,'Wil SG','Wil SG' +--UNION SELECT 9500,'Wil SG 1','Wil SG 1' +--UNION SELECT 9502,'Braunau','Braunau' +--UNION SELECT 9503,'Stehrenberg','Stehrenberg' +--UNION SELECT 9504,'Friltschen','Friltschen' +--UNION SELECT 9506,'Lommis','Lommis' +--UNION SELECT 9507,'Stettfurt','Stettfurt' +--UNION SELECT 9514,'Wuppenau','Wuppenau' +--UNION SELECT 9515,'Hosenruck','Hosenruck' +--UNION SELECT 9517,'Mettlen','Mettlen' +--UNION SELECT 9565,'Rothenhausen','Rothenhausen' +--UNION SELECT 9524,'Zuzwil SG','Zuzwil SG' +--UNION SELECT 9525,'Lenggenwil','Lenggenwil' +--UNION SELECT 9526,'Zuckenriet','Zuckenriet' +--UNION SELECT 9527,'Niederhelfenschwil','Niederhelfenschwil' +--UNION SELECT 9532,'Rickenbach b. Wil','Rickenbach b. Wil' +--UNION SELECT 9533,'Kirchberg SG','Kirchberg SG' +--UNION SELECT 9535,'Wilen b. Wil','Wilen b. Wil' +--UNION SELECT 9536,'Schwarzenbach SG','Schwarzenbach SG' +--UNION SELECT 9543,'St. Margarethen TG','St. Margarethen TG' +--UNION SELECT 9546,'Tuttwil','Tuttwil' +--UNION SELECT 9547,'Wittenwil','Wittenwil' +--UNION SELECT 9548,'Matzingen','Matzingen' +--UNION SELECT 9552,'Bronschhofen','Bronschhofen' +--UNION SELECT 9553,'Bettwiesen','Bettwiesen' +--UNION SELECT 9555,'Tobel','Tobel' +--UNION SELECT 9556,'Affeltrangen','Affeltrangen' +--UNION SELECT 9565,'Schmidshof','Schmidshof' +--UNION SELECT 9565,'Oppikon','Oppikon' +--UNION SELECT 9565,'Bussnang','Bussnang' +--UNION SELECT 9573,'Littenheid','Littenheid' +--UNION SELECT 9602,'Bazenheid','Bazenheid' +--UNION SELECT 9607,'Mosnang','Mosnang' +--UNION SELECT 9608,'Ganterschwil','Ganterschwil' +--UNION SELECT 9612,'Dreien','Dreien' +--UNION SELECT 9614,'Libingen','Libingen' +--UNION SELECT 9615,'Dietfurt','Dietfurt' +--UNION SELECT 9620,'Lichtensteig','Lichtensteig' +--UNION SELECT 9621,'Oberhelfenschwil','Oberhelfenschwil' +--UNION SELECT 9622,'Krinau','Krinau' +--UNION SELECT 9630,'Wattwil','Wattwil' +--UNION SELECT 9631,'Ulisbach','Ulisbach' +--UNION SELECT 9633,'Hemberg','Hemberg' +--UNION SELECT 9642,'Ebnat-Kappel','Ebnat-Kappel' +--UNION SELECT 9643,'Krummenau','Krummenau' +--UNION SELECT 9650,'Nesslau','Nesslau' +--UNION SELECT 9655,'Stein SG','Stein SG' +--UNION SELECT 9652,'Neu St. Johann','Neu St. Johann' +--UNION SELECT 9656,'Alt St. Johann','Alt St. Johann' +--UNION SELECT 9657,'Unterwasser','Unterwasser' +--UNION SELECT 9658,'Wildhaus','Wildhaus' +--UNION SELECT 3185,'Schmitten FR','Schmitten FR' +--UNION SELECT 3113,'Rubigen','Rubigen' +--UNION SELECT 3900,'Brig Zustellung','Brig Zustellung' +--UNION SELECT 6911,'Campione','Campione d''Italia' +--UNION SELECT 6300,'Zug','Zug' +--UNION SELECT 7000,'Chur Postauto','Chur Postauto GR Reg. Chur' +--UNION SELECT 6900,'Lugano Stazione','Lugano Stazione' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 1934,'Bruson','Bruson' +--UNION SELECT 3800,'Sundlauenen','Sundlauenen' +--UNION SELECT 3000,'Bern','Bern' +--UNION SELECT 1031,'Mex VD','Mex VD' +--UNION SELECT 1734,'Tentlingen','Tentlingen' +--UNION SELECT 1029,'Villars-Ste-Croix','Villars-Ste-Croix' +--UNION SELECT 3044,'Innerberg','Innerberg' +--UNION SELECT 1295,'Mies','Mies' +--UNION SELECT 1295,'Tannay','Tannay' +--UNION SELECT 1920,'Martigny 1 Dist','Martigny 1 Distribution' +--UNION SELECT 6370,'Oberdorf NW','Oberdorf NW' +--UNION SELECT 8317,'Tagelswangen','Tagelswangen' +--UNION SELECT 3855,'Schwanden-Brienz','Schwanden b. Brienz' +--UNION SELECT 3700,'Spiezwiler','Spiezwiler' +--UNION SELECT 3961,'St-Jean VS','St-Jean VS' +--UNION SELECT 3380,'Walliswil-Nbipp','Walliswil b. Niederbipp' +--UNION SELECT 6900,'Massagno Caselle','Massagno Caselle' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 1267,'Vich','Vich' +--UNION SELECT 1267,'Coinsins','Coinsins' +--UNION SELECT 8000,'Gockhausen','Gockhausen' +--UNION SELECT 5232,'Villigen PSI','Villigen PSI' +--UNION SELECT 8614,'Sulzbach','Sulzbach' +--UNION SELECT 1595,'Clavaleyres','Clavaleyres' +--UNION SELECT 2735,'Champoz','Champoz' +--UNION SELECT 2715,'Monible','Monible' +--UNION SELECT 2827,'Schelten','Schelten' +--UNION SELECT 2830,'Vellerat','Vellerat' +--UNION SELECT 2575,'Hagneck','Hagneck' +--UNION SELECT 2556,'Schwadernau','Schwadernau' +--UNION SELECT 1470,'Bollion','Bollion' +--UNION SELECT 1773,'Chandon','Chandon' +--UNION SELECT 1534,'Chapelle Broye','Chapelle Broye' +--UNION SELECT 1475,'Forel FR','Forel FR' +--UNION SELECT 1483,'Frasses','Frasses' +--UNION SELECT 1566,'Les Friques','Les Friques' +--UNION SELECT 1484,'Granges-de-Vesin','Granges-de-Vesin' +--UNION SELECT 1470,'Lully FR','Lully FR' +--UNION SELECT 1475,'Montbrelloz','Montbrelloz' +--UNION SELECT 1541,'Morens FR','Morens FR' +--UNION SELECT 1528,'Praratoud','Praratoud' +--UNION SELECT 1773,'Russy','Russy' +--UNION SELECT 1470,'Seiry','Seiry' +--UNION SELECT 1565,'Vallon','Vallon' +--UNION SELECT 1483,'Vesin','Vesin' +--UNION SELECT 1680,'Berlens','Berlens' +--UNION SELECT 1670,'Bionnens','Bionnens' +--UNION SELECT 1675,'Blessens','Blessens' +--UNION SELECT 1694,'Chavannes-Orsonnen','Chavannes-sous-Orsonnens' +--UNION SELECT 1697,'Les Ecasseys','Les Ecasseys' +--UNION SELECT 1670,'Esmonts','Esmonts' +--UNION SELECT 1673,'Gillarens','Gillarens' +--UNION SELECT 1681,'Hennens','Hennens' +--UNION SELECT 1688,'Lieffrens','Lieffrens' +--UNION SELECT 1690,'Lussy FR','Lussy FR' +--UNION SELECT 1687,'La Magne','La Magne' +--UNION SELECT 1674,'Morlens','Morlens' +--UNION SELECT 1675,'Mossel','Mossel' +--UNION SELECT 1686,'La Neirigue','La Neirigue' +--UNION SELECT 1694,'Villargiroud','Villargiroud' +--UNION SELECT 1669,'Lessoc','Lessoc' +--UNION SELECT 1625,'Maules','Maules' +--UNION SELECT 1652,'Villarbeney','Villarbeney' +--UNION SELECT 1666,'Villars-sous-Mont','Villars-sous-Mont' +--UNION SELECT 1782,'Autafond','Autafond' +--UNION SELECT 1782,'La Corbaz','La Corbaz' +--UNION SELECT 1754,'Corjolens','Corjolens' +--UNION SELECT 1782,'Cormagens','Cormagens' +--UNION SELECT 1730,'Ecuvillens','Ecuvillens' +--UNION SELECT 1724,'Essert FR','Essert FR' +--UNION SELECT 1726,'Farvagny-le-Petit','Farvagny-le-Petit' +--UNION SELECT 1724,'Ferpicloz','Ferpicloz' +--UNION SELECT 1726,'Grenilles','Grenilles' +--UNION SELECT 1782,'Lossy','Lossy' +--UNION SELECT 1756,'Lovens','Lovens' +--UNION SELECT 1727,'Magnedens','Magnedens' +--UNION SELECT 1724,'Oberried FR','Oberried FR' +--UNION SELECT 1723,'Pierrafortscha','Pierrafortscha' +--UNION SELECT 1772,'Ponthaux','Ponthaux' +--UNION SELECT 1726,'Posat','Posat' +--UNION SELECT 1695,'Rueyres-St-Laurent','Rueyres-St-Laurent' +--UNION SELECT 1695,'Villarsel-Gibloux','Villarsel-le-Gibloux' +--UNION SELECT 1723,'Villarsel-Marly','Villarsel-sur-Marly' +--UNION SELECT 1721,'Courtion','Courtion' +--UNION SELECT 1792,'Guschelmuth','Guschelmuth' +--UNION SELECT 1784,'Wallenried','Wallenried' +--UNION SELECT 1716,'Oberschrot','Oberschrot' +--UNION SELECT 1719,'Zumholz','Zumholz' +--UNION SELECT 1609,'Besencens','Besencens' +--UNION SELECT 1624,'Grattavache','Grattavache' +--UNION SELECT 1174,'Pizy','Pizy' +--UNION SELECT 1787,'Mur Vully VD','Mur Vully VD' +--UNION SELECT 1580,'Oleyres','Oleyres' +--UNION SELECT 1148,'Chavannes-Veyron','Chavannes-le-Veyron' +--UNION SELECT 1148,'Mauraz','Mauraz' +--UNION SELECT 1376,'Eclagnens','Eclagnens' +--UNION SELECT 1376,'Goumoens-le-Jux','Goumoens-le-Jux' +--UNION SELECT 1041,'Naz','Naz' +--UNION SELECT 1421,'Grandevent','Grandevent' +--UNION SELECT 1428,'Mutrux','Mutrux' +--UNION SELECT 1423,'Romairon','Romairon' +--UNION SELECT 1423,'Vaugondry','Vaugondry' +--UNION SELECT 1134,'Chigny','Chigny' +--UNION SELECT 1026,'Denges','Denges' +--UNION SELECT 1410,'Correvon','Correvon' +--UNION SELECT 1682,'Lovatens','Lovatens' +--UNION SELECT 1063,'Martherenges','Martherenges' +--UNION SELECT 1041,'Montaubion-Chardon','Montaubion-Chardonney' +--UNION SELECT 1513,'Rossenges','Rossenges' +--UNION SELECT 1683,'Sarzens','Sarzens' +--UNION SELECT 1277,'Arnex-sur-Nyon','Arnex-sur-Nyon' +--UNION SELECT 1279,'Bogis-Bossey','Bogis-Bossey' +--UNION SELECT 1290,'Chavannes-des-Bois','Chavannes-des-Bois' +--UNION SELECT 1355,'Sergey','Sergey' +--UNION SELECT 1608,'Bussigny-sur-Oron','Bussigny-sur-Oron' +--UNION SELECT 1608,'Chesalles-sur-Oron','Chesalles-sur-Oron' +--UNION SELECT 1607,'Les Tavernes','Les Tavernes' +--UNION SELECT 1607,'Les Thioleyres','Les Thioleyres' +--UNION SELECT 1610,'Vuibroye','Vuibroye' +--UNION SELECT 1682,'Cerniaz VD','Cerniaz VD' +--UNION SELECT 1554,'Rossens VD','Rossens VD' +--UNION SELECT 1525,'Seigneux','Seigneux' +--UNION SELECT 1195,'Dully','Dully' +--UNION SELECT 1180,'Tartegnin','Tartegnin' +--UNION SELECT 1436,'Chamblon','Chamblon' +--UNION SELECT 1443,'Essert-s-Champvent','Essert-sous-Champvent' +--UNION SELECT 1443,'Villars-Champvent','Villars-sous-Champvent' +--UNION SELECT 1407,'Gossens','Gossens' +--UNION SELECT 1432,'Gressy','Gressy' +--UNION SELECT 1047,'Oppens','Oppens' +--UNION SELECT 1412,'Ursins','Ursins' +--UNION SELECT 1404,'Villars-Epeney','Villars-Epeney' +--UNION SELECT 2027,'Montalchez','Montalchez' +--UNION SELECT 2063,'Engollon','Engollon' +--UNION SELECT 2933,'Damphreux','Damphreux' +--UNION SELECT 8165,'Oberweningen','Oberweningen' +--UNION SELECT 8165,'Schleinikon','Schleinikon' +--UNION SELECT 8543,'Bertschikon','Bertschikon' +--UNION SELECT 3283,'Niederried b. Kall','Niederried b. Kallnach' +--UNION SELECT 4932,'Gutenburg','Gutenburg' +--UNION SELECT 3294,'Meienried','Meienried' +--UNION SELECT 3429,'Hellsau','Hellsau' +--UNION SELECT 3472,'Rumendingen','Rumendingen' +--UNION SELECT 3425,'Willadingen','Willadingen' +--UNION SELECT 2577,'Finsterhennen','Finsterhennen' +--UNION SELECT 3303,'Ballmoos','Ballmoos' +--UNION SELECT 3256,'Bangerten','Bangerten b. Dieterswil' +--UNION SELECT 3053,'Diemerswil','Diemerswil' +--UNION SELECT 3251,'Ruppoldsried','Ruppoldsried' +--UNION SELECT 3305,'Scheunen','Scheunen' +--UNION SELECT 3053,'Wiggiswil','Wiggiswil' +--UNION SELECT 3309,'Zauggenried','Zauggenried' +--UNION SELECT 3510,'Freimettigen','Freimettigen' +--UNION SELECT 3671,'Herbligen','Herbligen' +--UNION SELECT 3532,'Mirchel','Mirchel' +--UNION SELECT 3629,'Oppligen','Oppligen' +--UNION SELECT 3207,'Golaten','Golaten' +--UNION SELECT 3272,'Epsach','Epsach' +--UNION SELECT 3274,'Merzligen','Merzligen' +--UNION SELECT 3632,'Niederstocken','Niederstocken' +--UNION SELECT 3086,'Englisberg','Englisberg' +--UNION SELECT 3629,'Jaberg','Jaberg' +--UNION SELECT 3127,'Lohnstorf','Lohnstorf' +--UNION SELECT 3116,'Noflen BE','Noflen BE' +--UNION SELECT 3623,'Horrenbach','Horrenbach' +--UNION SELECT 3624,'Schwendibach','Schwendibach' +--UNION SELECT 3645,'Zwieselberg','Zwieselberg' +--UNION SELECT 3376,'Berken','Berken' +--UNION SELECT 3366,'Bollodingen','Bollodingen' +--UNION SELECT 3367,'Ochlenberg','Ochlenberg' +--UNION SELECT 4704,'Wolfisberg','Wolfisberg' +--UNION SELECT 6277,'Lieli','Lieli LU' +--UNION SELECT 6284,'Sulz LU','Sulz LU' +--UNION SELECT 6038,'Honau','Honau' +--UNION SELECT 8777,'Betschwanden','Betschwanden' +--UNION SELECT 8774,'Leuggelbach','Leuggelbach' +--UNION SELECT 3216,'Agriswil','Agriswil' +--UNION SELECT 3280,'Greng','Greng' +--UNION SELECT 3212,'Kleingurmels','Kleingurmels' +--UNION SELECT 3215,'Lurtigen','Lurtigen' +--UNION SELECT 3206,'Wallenbuch','Wallenbuch' +--UNION SELECT 4583,'Aetigkofen','Aetigkofen' +--UNION SELECT 3254,'Balm b. Messen','Balm b. Messen' +--UNION SELECT 4556,'Bolken','Bolken' +--UNION SELECT 4566,'Halten','Halten' +--UNION SELECT 4558,'Heinrichswil','Heinrichswil' +--UNION SELECT 4566,'Oekingen','Oekingen' +--UNION SELECT 4556,'Steinhof SO','Steinhof SO' +--UNION SELECT 4558,'Winistorf','Winistorf' +--UNION SELECT 4535,'Kammersrohr','Kammersrohr' +--UNION SELECT 4436,'Liedertswil','Liedertswil' +--UNION SELECT 9057,'Schwende','Schwende' +--UNION SELECT 7456,'Marmorera','Marmorera' +--UNION SELECT 7130,'Schnaus','Schnaus' +--UNION SELECT 7116,'St. Martin','St. Martin Lugnez' +--UNION SELECT 7415,'Pratval','Pratval' +--UNION SELECT 7423,'Portein','Portein' +--UNION SELECT 7027,'Calfreisen','Calfreisen' +--UNION SELECT 5619,'Uezwil','Uezwil' +--UNION SELECT 1820,'Veytaux','Veytaux' +--UNION SELECT 5012,'Eppenberg','Eppenberg' +--UNION SELECT 8905,'Islisberg','Islisberg' +--UNION SELECT 5637,'Geltwil','Geltwil' +--UNION SELECT 5058,'Wiliberg','Wiliberg' +--UNION SELECT 8580,'Hefenhofen','Hefenhofen' +--UNION SELECT 8586,'Buchackern','Buchackern' +--UNION SELECT 8586,'Engishofen','Engishofen' +--UNION SELECT 8586,'Ennetaach','Ennetaach' +--UNION SELECT 8253,'Willisdorf','Willisdorf' +--UNION SELECT 8546,'Kefikon TG','Kefikon TG' +--UNION SELECT 8553,'Eschikofen','Eschikofen' +--UNION SELECT 8553,'Harenwilen','Harenwilen' +--UNION SELECT 8553,'Mettendorf TG','Mettendorf TG' +--UNION SELECT 8573,'Alterswilen','Alterswilen' +--UNION SELECT 8573,'Altishausen','Altishausen' +--UNION SELECT 8566,'Ellighausen','Ellighausen' +--UNION SELECT 8566,'Lippoldswilen','Lippoldswilen' +--UNION SELECT 8274,'Gottlieben','Gottlieben' +--UNION SELECT 8585,'Herrenhof','Herrenhof' +--UNION SELECT 8564,'Sonterswil','Sonterswil' +--UNION SELECT 9556,'Zezikon','Zezikon' +--UNION SELECT 8512,'Wetzikon TG','Wetzikon TG' +--UNION SELECT 8360,'Wallenwil','Wallenwil' +--UNION SELECT 8537,'Uerschhausen','Uerschhausen' +--UNION SELECT 8505,'Dettighofen','Dettighofen' +--UNION SELECT 8259,'Rheinklingen','Rheinklingen' +--UNION SELECT 8572,'Andhausen','Andhausen' +--UNION SELECT 8572,'Graltshausen','Graltshausen' +--UNION SELECT 8585,'Birwinken','Birwinken' +--UNION SELECT 8572,'Guntershausen Berg','Guntershausen b. Berg' +--UNION SELECT 8585,'Klarsreuti','Klarsreuti' +--UNION SELECT 8575,'Istighofen','Istighofen' +--UNION SELECT 8556,'Engwang','Engwang' +--UNION SELECT 8556,'Illhart','Illhart' +--UNION SELECT 6720,'Ghirone','Ghirone' +--UNION SELECT 6724,'Largario','Largario' +--UNION SELECT 6723,'Marolta','Marolta' +--UNION SELECT 6963,'Cureggia','Cureggia' +--UNION SELECT 6814,'Lamone','Lamone' +--UNION SELECT 3995,'Ausserbinn','Ausserbinn' +--UNION SELECT 3989,'Ritzingen','Ritzingen' +--UNION SELECT 3989,'Selkingen','Selkingen' +--UNION SELECT 3995,'Steinhaus','Steinhaus' +--UNION SELECT 3957,'Bratsch','Bratsch' +--UNION SELECT 3983,'Bister','Bister' +--UNION SELECT 3983,'Filet','Filet' +--UNION SELECT 3983,'Goppisberg','Goppisberg' +--UNION SELECT 3994,'Martisberg','Martisberg' +--UNION SELECT 3940,'Steg VS','Steg VS' +--UNION SELECT 9498,'Planken','Planken' +--UNION SELECT 6212,'Kaltbach','Kaltbach' +--UNION SELECT 8525,'Wilen b. Neunforn','Wilen b. Neunforn' +--UNION SELECT 2735,'Malleray','Malleray' +--UNION SELECT 1626,'Treyfayes','Treyfayes' +--UNION SELECT 2027,'Fresens','Fresens' +--UNION SELECT 2933,'Lugnez','Lugnez' +--UNION SELECT 2953,'Pleujouse','Pleujouse' +--UNION SELECT 1624,'Progens','Progens' +--UNION SELECT 3984,'Fieschertal','Fieschertal' +--UNION SELECT 6814,'Cadempino','Cadempino' +--UNION SELECT 8905,'Arni AG','Arni AG' +--UNION SELECT 9470,'Werdenberg','Werdenberg' +--UNION SELECT 8427,'Freienstein','Freienstein' +--UNION SELECT 8427,'Rorbas','Rorbas' +--UNION SELECT 1626,'Rueyres-Treyfayes','Rueyres-Treyfayes' +--UNION SELECT 1884,'Arveyes','Arveyes' +--UNION SELECT 3963,'Aminona','Aminona' +--UNION SELECT 5053,'Wittwil','Wittwil' +--UNION SELECT 6000,'St. Niklausen LU','St. Niklausen LU' +--UNION SELECT 6995,'Madonna del Piano','Madonna del Piano' +--UNION SELECT 7226,'Fajauna','Fajauna' +--UNION SELECT 7743,'Miralago','Miralago' +--UNION SELECT 8212,'Nohl','Nohl' +--UNION SELECT 9122,'Ebersol','Ebersol' +--UNION SELECT 6340,'Baar','Baar' +--UNION SELECT 6900,'Paradiso','Paradiso' +--UNION SELECT 1754,'Avry-sur-Matran','Avry-sur-Matran' +--UNION SELECT 1774,'Montagny-les-Monts','Montagny-les-Monts' +--UNION SELECT 1110,'Morges Grosse P.','Morges Grosse Pierre' +--UNION SELECT 9000,'St. Gallen','St. Gallen Sonderdienste' +--UNION SELECT 1585,'Bellerive VD','Bellerive VD' +--UNION SELECT 2052,'La Vue-des-Alpes','La Vue-des-Alpes' +--UNION SELECT 3656,'Ringoldswil','Ringoldswil' +--UNION SELECT 4922,'Thunstetten','Thunstetten' +--UNION SELECT 1700,'Fribourg Beaumont','Fribourg Beaumont' +--UNION SELECT 1400,'Yverdon Villette','Yverdon La Villette' +--UNION SELECT 8879,'Pizolpark Mels','Pizolpark Mels' +--UNION SELECT 1195,'Bursinel','Bursinel' +--UNION SELECT 6207,'Nottwil SPZ','Nottwil Paraplegikerzentrum' +--UNION SELECT 3000,'Bern Radio Schweiz','Bern Radio Schweiz' +--UNION SELECT 3900,'Brigerbad','Brigerbad' +--UNION SELECT 8118,'Pfaffhausen','Pfaffhausen' +--UNION SELECT 1428,'Provence','Provence' +--UNION SELECT 1091,'Chenaux','Chenaux' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 9000,'St. Gallen','St. Gallen Mona Versand' +--UNION SELECT 6600,'Solduno','Solduno' +--UNION SELECT 3600,'Thun','Thun' +--UNION SELECT 1723,'Marly 1','Marly 1' +--UNION SELECT 8832,'Wilen b. Wollerau','Wilen b. Wollerau' +--UNION SELECT 1754,'Avry-Centre FR','Avry-Centre FR' +--UNION SELECT 1775,'Mannens','Mannens' +--UNION SELECT 1775,'Grandsivaz','Grandsivaz' +--UNION SELECT 8926,'Hauptikon','Hauptikon' +--UNION SELECT 8926,'Uerzlikon','Uerzlikon' +--UNION SELECT 1026,'Echandens','Echandens' +--UNION SELECT 1400,'Yverdon car postal','Yverdon car postal VD-Broye' +--UNION SELECT 3900,'Brig Postauto','Brig Postauto Oberwallis' +--UNION SELECT 8500,'Frauenfeld Pauto','Frauenfeld Postauto TG-SH' +--UNION SELECT 8106,'Adlikon b.Regensdf','Adlikon b. Regensdorf' +--UNION SELECT 9400,'Rorschach Zust','Rorschach Zustellung' +--UNION SELECT 6343,'Buonas','Buonas' +--UNION SELECT 6343,'Risch','Risch' +--UNION SELECT 3945,'Niedergampel','Niedergampel' +--UNION SELECT 1400,'Yverdon Dist','Yverdon Distribution' +--UNION SELECT 3415,'Hasle b. Burgdorf','Hasle b. Burgdorf' +--UNION SELECT 6410,'Rigi Scheidegg','Rigi Scheidegg' +--UNION SELECT 1631,'Bulle','Bulle centre de traitement' +--UNION SELECT 3040,'Bern Verarb.zentr.','Bern Verarbeitungszentrum' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 6000,'Luzern','Luzern' +--UNION SELECT 8759,'Netstal','Netstal' +--UNION SELECT 9000,'St. Gallen','St. Gallen' +--UNION SELECT 6500,'Bellinzona CS','Bellinzona centro servici' +--UNION SELECT 8268,'Salenstein','Salenstein' +--UNION SELECT 8522,'Aawangen','Aawangen' +--UNION SELECT 9503,'Lanterswil','Lanterswil' +--UNION SELECT 8574,'Oberhofen TG','Oberhofen TG' +--UNION SELECT 6260,'Hintermoos','Hintermoos' +--UNION SELECT 1279,'Chavannes-Bogis LS','Chavannes-de-Bogis OLS' +--UNION SELECT 1950,'Sion 4','Sion 4' +--UNION SELECT 6383,'Wiesenberg','Wiesenberg' +--UNION SELECT 4573,'Lohn-Ammannsegg','Lohn-Ammannsegg' +--UNION SELECT 8152,'Glattbrugg Zust','Glattbrugg Zustellung' +--UNION SELECT 1988,'Thyon-Les Collons','Thyon-Les Collons' +--UNION SELECT 8965,'Berikon 2 Dorf','Berikon 2 Dorf' +--UNION SELECT 8965,'Berikon-Widen','Berikon-Widen' +--UNION SELECT 5046,'Schmiedrued-Walde','Schmiedrued-Walde' +--UNION SELECT 6031,'Ebikon','Ebikon' +--UNION SELECT 6390,'Engelberg','Engelberg' +--UNION SELECT 6281,'Hochdorf','Hochdorf' +--UNION SELECT 6011,'Kriens','Kriens' +--UNION SELECT 6060,'Sarnen 1','Sarnen 1' +--UNION SELECT 6371,'Stans','Stans' +--UNION SELECT 6431,'Schwyz','Schwyz' +--UNION SELECT 8302,'Kloten Kaserne','Kloten Kaserne' +--UNION SELECT 8725,'Gebertingen','Gebertingen' +--UNION SELECT 6900,'Lugano Loreto','Lugano Loreto' +--UNION SELECT 6900,'Lugano 7 Caselle','Lugano 7 Loreto Caselle' +--UNION SELECT 9470,'Buchs SG 1','Buchs SG 1' +--UNION SELECT 9470,'Buchs SG 3','Buchs SG 3' +--UNION SELECT 1260,'Nyon 2','Nyon 2' +--UNION SELECT 1260,'Nyon 1','Nyon 1' +--UNION SELECT 1530,'Payerne Caserne','Payerne Caserne' +--UNION SELECT 8903,'Birmensdorf ZH Kas','Birmensdorf ZH Kaserne' +--UNION SELECT 8500,'Frauenfeld Kaserne','Frauenfeld Kaserne' +--UNION SELECT 9401,'Rorschach','Rorschach' +--UNION SELECT 9500,'Wil SG 1','Wil SG 1' +--UNION SELECT 5620,'Bremgarten AG West','Bremgarten AG West' +--UNION SELECT 5620,'Bremgarten AG 1','Bremgarten AG 1' +--UNION SELECT 4500,'Solothurn','Solothurn' +--UNION SELECT 6060,'Sarnen 2','Sarnen 2' +--UNION SELECT 6060,'Sarnen 1','Sarnen 1' +--UNION SELECT 1958,'Uvrier','Uvrier' +--UNION SELECT 9000,'St. Gallen 14 Zust','St. Gallen 14 Zustellung' +--UNION SELECT 3800,'Interlaken Pauto','Interlaken Postauto BE Ober' +--UNION SELECT 4000,'Basel Postauto','Basel Postauto Nordwestschw' +--UNION SELECT 6000,'Luzern Postauto','Luzern Postauto Zentralschw' +--UNION SELECT 8730,'Uznach Postauto','Uznach Postauto Linth-SZ-GL' +--UNION SELECT 9000,'St. Gallen Postaut','St. Gallen Postauto SG-Azel' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 4524,'Balmberg','Balmberg' +--UNION SELECT 4524,'Oberbalmberg','Oberbalmberg' +--UNION SELECT 6156,'Luthern Bad','Luthern Bad' +--UNION SELECT 6260,'Mehlsecken','Mehlsecken' +--UNION SELECT 6600,'Muralto','Muralto' +--UNION SELECT 6161,'Entlebuch Versand','Entlebuch Versandzentrum' +--UNION SELECT 6677,'Aurigeno','Aurigeno' +--UNION SELECT 9200,'Gossau SG','Gossau SG' +--UNION SELECT 6900,'Lugano 2','Lugano 2' +--UNION SELECT 6600,'Locarno 4 Solduno','Locarno 4 Solduno' +--UNION SELECT 8510,'Frauenfeld','Frauenfeld Kant. Verwaltung' +--UNION SELECT 3050,'Bern Swisscom','Bern Swisscom' +--UNION SELECT 6900,'Lugano 8','Lugano 8' +--UNION SELECT 6900,'Lugano 4','Lugano 4' +--UNION SELECT 6900,'Lugano 6','Lugano 6' +--UNION SELECT 7431,'Obermutten','Obermutten' +--UNION SELECT 1892,'Lavey-les-Bains','Lavey-les-Bains' +--UNION SELECT 2575,'Gerolfingen','Gerolfingen' +--UNION SELECT 3000,'Bern 60 UPD','Bern 60 UPD' +--UNION SELECT 8260,'Stein am Rhein 1','Stein am Rhein 1' +--UNION SELECT 8260,'Stein am Rhein 2','Stein am Rhein 2 Stadt' +--UNION SELECT 9214,'Kradolf','Kradolf' +--UNION SELECT 1400,'Yverdon Caserne','Yverdon Caserne' +--UNION SELECT 2013,'Colombier NE Cas','Colombier NE Caserne' +--UNION SELECT 1680,'Romont Caserne','Romont Caserne' +--UNION SELECT 6032,'Emmen Kaserne','Emmen Kaserne' +--UNION SELECT 1700,'Fribourg Caserne','Fribourg Caserne' +--UNION SELECT 6810,'Isone Caserma','Isone Caserma' +--UNION SELECT 6616,'Losone Caserma','Losone Caserma' +--UNION SELECT 6000,'Luzern Kaserne','Luzern Kaserne' +--UNION SELECT 3250,'Lyss Kaserne','Lyss Kaserne' +--UNION SELECT 8887,'Mels Kaserne','Mels Kaserne' +--UNION SELECT 6802,'Rivera Caserma','Rivera Caserma' +--UNION SELECT 1510,'Moudon Caserne','Moudon Caserne' +--UNION SELECT 1890,'St-Maurice Caserne','St-Maurice Caserne' +--UNION SELECT 1950,'Sion Caserne','Sion Caserne' +--UNION SELECT 3380,'Wangen Kaserne','Wangen a. A. Kaserne' +--UNION SELECT 6370,'Stans Kaserne','Stans Kaserne' +--UNION SELECT 6780,'Airolo Caserma','Airolo Caserma' +--UNION SELECT 3000,'Bern 22 Kaserne','Bern 22 Kaserne' +--UNION SELECT 2900,'Porrentruy Caserne','Porrentruy Caserne' +--UNION SELECT 8640,'Hurden','Hurden' +--UNION SELECT 6460,'Altdorf UR 2','Altdorf UR 2' +--UNION SELECT 2075,'Thielle','Thielle' +--UNION SELECT 2075,'Wavre','Wavre' +--UNION SELECT 1721,'Misery','Misery' +--UNION SELECT 3632,'Oberstocken','Oberstocken' +--UNION SELECT 1068,'Les Monts-de-Pully','Les Monts-de-Pully' +--UNION SELECT 8285,'Kreuzlingen Ifolor','Kreuzlingen Ifolor AG' +--UNION SELECT 4000,'Basel SSF','Basel SSF' +--UNION SELECT 1762,'Givisiez Dist Ba','Givisiez Dist Ba' +--UNION SELECT 3600,'Thun Dist Ba','Thun Dist Ba' +--UNION SELECT 2510,'Biel/Bienne DistBa','Biel/Bienne Dist Ba' +--UNION SELECT 8200,'Schaffhausen DistB','Schaffhausen Dist Ba' +--UNION SELECT 1227,'Carouge GE Dist','Carouge GE Distribution' +--UNION SELECT 1196,'Gland Distribution','Gland Distribution' +--UNION SELECT 1218,'Grand-Saconnex D','Grand-Saconnex Distribution' +--UNION SELECT 1213,'Petit-Lancy Dist','Petit-Lancy Distribution' +--UNION SELECT 1219,'Le Lignon Dist','Le Lignon Distribution' +--UNION SELECT 1217,'Meyrin Dist','Meyrin Distribution' +--UNION SELECT 1290,'Versoix Dist','Versoix Distribution' +--UNION SELECT 1860,'Aigle Distribution','Aigle Distribution' +--UNION SELECT 1030,'Bussigny Dist','Bussigny Distribution' +--UNION SELECT 1023,'Crissier 1 Dist','Crissier Distribution' +--UNION SELECT 4242,'Laufen Zustellung','Laufen Zustellung' +--UNION SELECT 4132,'Muttenz 1 Zust','Muttenz 1 Zustellung' +--UNION SELECT 4104,'Oberwil BL Zust','Oberwil BL Zustellung' +--UNION SELECT 4702,'Oensingen Zust','Oensingen Zustellung' +--UNION SELECT 4153,'Reinach BL Zust','Reinach BL Zustellung' +--UNION SELECT 5620,'Bremgarten 1 Zust','Bremgarten AG 1 Zustellung' +--UNION SELECT 5600,'Lenzburg Zust','Lenzburg Zustellung' +--UNION SELECT 4310,'Rheinfelden 1 Zust','Rheinfelden 1 Zustellung' +--UNION SELECT 8957,'Spreitenbach Zust','Spreitenbach Zustellung' +--UNION SELECT 5610,'Wohlen AG 1 Zust','Wohlen AG 1 Zustellung' +--UNION SELECT 4800,'Zofingen Zust','Zofingen Zustellung' +--UNION SELECT 6440,'Brunnen Zust','Brunnen Zustellung' +--UNION SELECT 6030,'Ebikon Zustellung','Ebikon Zustellung' +--UNION SELECT 6390,'Engelberg Zust','Engelberg Zustellung' +--UNION SELECT 6410,'Goldau Zust','Goldau Zustellung' +--UNION SELECT 6010,'Kriens 2 Zust','Kriens 2 Zustellung' +--UNION SELECT 6102,'Malters Zust','Malters Zustellung' +--UNION SELECT 6430,'Schwyz Zust','Schwyz Zustellung' +--UNION SELECT 6210,'Sursee Zust','Sursee Zustellung' +--UNION SELECT 6130,'Willisau Zust','Willisau Zustellung' +--UNION SELECT 1870,'Monthey 1 Dist','Monthey 1 Distribution' +--UNION SELECT 3280,'Murten Zustellung','Murten Zustellung' +--UNION SELECT 8134,'Adliswil 1 Zust','Adliswil 1 Zustellung' +--UNION SELECT 8910,'Affoltern a.A.Zust','Affoltern am A. Zustellung' +--UNION SELECT 8580,'Amriswil Zust','Amriswil Zustellung' +--UNION SELECT 9320,'Arbon Zustellung','Arbon Zustellung' +--UNION SELECT 8903,'Birmensdorf Zust','Birmensdorf ZH Zustellung' +--UNION SELECT 9220,'Bischofszell Zust','Bischofszell Zustellung' +--UNION SELECT 8157,'Dielsdorf Zust','Dielsdorf Zustellung' +--UNION SELECT 8307,'Effretikon Zust','Effretikon Zustellung' +--UNION SELECT 8424,'Embrach Zustellung','Embrach Zustellung' +--UNION SELECT 1350,'Orbe Distribution','Orbe Distribution' +--UNION SELECT 8706,'Meilen Zust','Meilen Zustellung' +--UNION SELECT 1020,'Renens VD 1 Dist','Renens VD 1 Distribution' +--UNION SELECT 3960,'Sierre Dist','Sierre Distribution' +--UNION SELECT 3963,'C.-Montana 1 Dist','Crans-Montana 1 Dist' +--UNION SELECT 3123,'Belp Zustellung','Belp Zustellung' +--UNION SELECT 8590,'Romanshorn Zust','Romanshorn Zustellung' +--UNION SELECT 3714,'Frutigen Zust','Frutigen Zustellung' +--UNION SELECT 8800,'Thalwil Zustellung','Thalwil Zustellung' +--UNION SELECT 3360,'Hbuchsee Zust','Herzogenbuchsee Zustellung' +--UNION SELECT 8636,'Wald ZH Zustellung','Wald ZH Zustellung' +--UNION SELECT 4950,'Huttwil Zustellung','Huttwil Zustellung' +--UNION SELECT 8304,'Wallisellen Zust','Wallisellen Zustellung' +--UNION SELECT 3800,'Interlaken Zust','Interlaken Zustellung' +--UNION SELECT 8570,'Weinfelden Zust','Weinfelden Zustellung' +--UNION SELECT 8126,'Zumikon Zust','Zumikon Zustellung' +--UNION SELECT 8406,'Winterthur 6 Zust','Winterthur 6 Zustellung' +--UNION SELECT 3422,'Kirchberg BE Zust','Kirchberg BE Zustellung' +--UNION SELECT 4900,'Langenthal 1 Zust','Langenthal 1 Zustellung' +--UNION SELECT 9050,'Appenzell Zust','Appenzell Zustellung' +--UNION SELECT 9100,'Herisau 1 Zust','Herisau 1 Zustellung' +--UNION SELECT 3700,'Spiez Zustellung','Spiez Zustellung' +--UNION SELECT 3612,'Steffisburg 1 Zust','Steffisburg 1 Zustellung' +--UNION SELECT 3076,'Worb Zustellung','Worb Zustellung' +--UNION SELECT 8340,'Hinwil Zustellung','Hinwil Zustellung' +--UNION SELECT 1212,'Grand-Lancy Dist','Grand-Lancy 1 Distribution' +--UNION SELECT 9200,'Gossau SG 1 Zust','Gossau SG 1 Zustellung' +--UNION SELECT 2400,'Le Locle Dist','Le Locle Distribution' +--UNION SELECT 2740,'Moutier 1 Dist','Moutier 1 Distribution' +--UNION SELECT 4123,'Allschwil Zust','Allschwil Zustellung' +--UNION SELECT 4710,'Balsthal Zust','Balsthal Zustellung' +--UNION SELECT 4563,'Gerlafingen Zust','Gerlafingen Zustellung' +--UNION SELECT 5200,'Brugg AG 1 Zust','Brugg AG 1 Zustellung' +--UNION SELECT 1274,'Signy-Centre','Signy-Centre' +--UNION SELECT 9476,'Fontnas','Fontnas' +--UNION SELECT 6000,'Luzern 31','Luzern 31' +--UNION SELECT 6000,'Luzern 30 AAL','Luzern 30 AAL' +--UNION SELECT 5018,'Erlinsbach','Erlinsbach' +--UNION SELECT 1310,'Daillens Dist Ba','Daillens Dist Ba' +--UNION SELECT 1310,'Daillens Centre Co','Daillens Centre Colis' +--UNION SELECT 1530,'Payerne Dist','Payerne Distribution' +--UNION SELECT 1630,'Bulle 1 Dist','Bulle 1 Distribution' +--UNION SELECT 3550,'Langnau i. E. Zust','Langnau i. E. Zustellung' +--UNION SELECT 7270,'Davos Zust','Davos Zustellung' +--UNION SELECT 1274,'Signy','Signy' +--UNION SELECT 3400,'Burgdorf Dist Fil','Burgdorf Dist Fil' +--UNION SELECT 8307,'Effretikon Dist Ba','Effretikon Dist Ba' +--UNION SELECT 8520,'Frauenfeld PZ','Frauenfeld Paketzentrum' +--UNION SELECT 8520,'Frauenfeld Dist Ba','Frauenfeld Dist Ba' +--UNION SELECT 8343,'Hinwil Dist Ba','Hinwil Dist Ba' +--UNION SELECT 9442,'Berneck Dist Ba','Berneck Dist Ba' +--UNION SELECT 8564,'Hefenhausen','Hefenhausen' +--UNION SELECT 8564,'Wagerswil','Wagerswil' +--UNION SELECT 9565,'Oberbussnang','Oberbussnang' +--UNION SELECT 2950,'Courtemautruy','Courtemautruy' +--UNION SELECT 1347,'Le Solliat','Le Solliat' +--UNION SELECT 1148,'Villars-Bozon','Villars-Bozon' +--UNION SELECT 1304,'Allens','Allens' +--UNION SELECT 8867,'Niederurnen D. Hub','Niederurnen Dist Hub' +--UNION SELECT 8590,'Romanshorn Zust P','Romanshorn Zust Pakete' +--UNION SELECT 3800,'Interlaken Zust. P','Interlaken Zustellung P' +--UNION SELECT 1630,'Bulle Dist Fil','Bulle Dist Fil' +--UNION SELECT 1196,'Gland Dist Fil','Gland Dist Fil' +--UNION SELECT 3000,'Bern 65','Bern 65 SBB' +--UNION SELECT 1033,'Cheseaux Dist','Cheseaux-Laus Distribution' +--UNION SELECT 3960,'Niouc','Niouc' +--UNION SELECT 4410,'Liestal Dist Ba','Liestal Dist Ba' +--UNION SELECT 1912,'Produit Leytron','Produit Leytron' +--UNION SELECT 1912,'Montagnon Leytron','Montagnon Leytron' +--UNION SELECT 1912,'Dugny Leytron','Dugny Leytron' +--UNION SELECT 1914,'Auddes-sur-Riddes','Auddes-sur-Riddes' +--UNION SELECT 1932,'Les Valettes','Les Valettes Bovernier' +--UNION SELECT 1933,'VensSembrancher','Vens Sembrancher' +--UNION SELECT 1933,'Chamoille','Chamoille Sembrancher' +--UNION SELECT 1933,'La Garde','La Garde Sembrancher' +--UNION SELECT 1945,'Fontaine Dessus','Fontaine Dessus Liddes' +--UNION SELECT 1945,'Fontaine Dessous','Fontaine Dessous Liddes' +--UNION SELECT 1945,'Dranse Liddes','Dranse Liddes' +--UNION SELECT 1945,'Chandonne Liddes','Chandonne Liddes' +--UNION SELECT 1945,'Rive HauteLiddes','Rive Haute Liddes' +--UNION SELECT 1945,'FornexLiddes','Fornex Liddes' +--UNION SELECT 1945,'Les Moulins VS','Les Moulins VS Liddes' +--UNION SELECT 1945,'Palasuit Liddes','Palasuit Liddes' +--UNION SELECT 1945,'Chez PetitLiddes','Chez Petit Liddes' +--UNION SELECT 1947,'Champsec','Champsec' +--UNION SELECT 1955,'Grugnay Chamoson','Grugnay Chamoson' +--UNION SELECT 1966,'Fortunau Ayent','Fortunau Ayent' +--UNION SELECT 1966,'Luc Ayent','Luc Ayent' +--UNION SELECT 1966,'St-Romain Ayent','St-Romain Ayent' +--UNION SELECT 1966,'Saxonne Ayent','Saxonne Ayent' +--UNION SELECT 1966,'Villa Ayent','Villa Ayent' +--UNION SELECT 1966,'La Place Ayent','La Place Ayent' +--UNION SELECT 1966,'Botyre Ayent','Botyre Ayent' +--UNION SELECT 1966,'Blignou Ayent','Blignou Ayent' +--UNION SELECT 1966,'Argnou Ayent','Argnou Ayent' +--UNION SELECT 1969,'Liez St-Martin','Liez St-Martin' +--UNION SELECT 1969,'Trogne St-Martin','Trogne St-Martin' +--UNION SELECT 1969,'Suen St-Martin','Suen St-Martin' +--UNION SELECT 1971,'Champlan','Champlan Grimisuat' +--UNION SELECT 1983,'Lanna','Lanna' +--UNION SELECT 1991,'Arvillard Salins','Arvillard Salins' +--UNION SELECT 1991,'Pravidondaz','Pravidondaz Salins' +--UNION SELECT 1991,'Turin Salins','Turin Salins' +--UNION SELECT 1996,'Brignon Nendaz','Brignon Nendaz' +--UNION SELECT 1992,'La Vernaz','La Vernaz Les Agettes' +--UNION SELECT 1996,'Bieudron Nendaz','Bieudron Nendaz' +--UNION SELECT 1996,'Saclentse','Saclentse' +--UNION SELECT 1955,'Mayens-de-Chamoson','Mayens-de-Chamoson' +--UNION SELECT 1585,'Cotterd','Cotterd' +--UNION SELECT 1873,'Champoussin','Champoussin' +--UNION SELECT 2063,'Fenin','Fenin' +--UNION SELECT 2063,'Saules','Saules' +--UNION SELECT 1873,'Les Crosets','Les Crosets' +--UNION SELECT 1095,'Lutry Distribution','Lutry Distribution' +--UNION SELECT 1052,'Mont-Lausanne Dist','Le Mont-sur-Lausanne Dist' +--UNION SELECT 2013,'Colombier NE Dist','Colombier NE Distribution' +--UNION SELECT 2074,'Marin-Epagnier Dis','Marin-Epagnier Distribution' +--UNION SELECT 2520,'La Neuveville Dist','La Neuveville Distribution' +--UNION SELECT 2720,'Tramelan Dist','Tramelan Distribution' +--UNION SELECT 2610,'St-Imier Dist','St-Imier Distribution' +--UNION SELECT 1580,'Avenches Dist','Avenches Distribution' +--UNION SELECT 1510,'Moudon Dist','Moudon Distribution' +--UNION SELECT 1680,'Romont FR Dist','Romont FR Distribution' +--UNION SELECT 1880,'Bex Distribution','Bex Distribution' +--UNION SELECT 1233,'Bernex Dist','Bernex Distribution' +--UNION SELECT 1214,'Vernier Dist','Vernier Distribution' +--UNION SELECT 1180,'Rolle Distribution','Rolle Distribution' +--UNION SELECT 1040,'Echallens Dist','Echallens Distribution' +--UNION SELECT 3150,'Schwarzenburg Zust','Schwarzenburg Zustellung' +--UNION SELECT 3210,'Kerzers Zust','Kerzers Zustellung' +--UNION SELECT 3855,'Brienz BE Zust','Brienz BE Zustellung' +--UNION SELECT 3860,'Meiringen Zust','Meiringen Zustellung' +--UNION SELECT 4460,'Gelterkinden Zust','Gelterkinden Zustellung' +--UNION SELECT 4512,'Bellach Zustellung','Bellach Zustellung' +--UNION SELECT 4663,'Aarburg Zust','Aarburg Zustellung' +--UNION SELECT 5033,'Buchs AG Zust','Buchs AG Zustellung' +--UNION SELECT 5036,'Oberentfelden Zust','Oberentfelden Zustellung' +--UNION SELECT 5070,'Frick Zustellung','Frick Zustellung' +--UNION SELECT 5734,'Reinach AG Zust','Reinach AG Zustellung' +--UNION SELECT 5630,'Muri AG Zustellung','Muri AG Zustellung' +--UNION SELECT 6280,'Hochdorf Zust','Hochdorf Zustellung' +--UNION SELECT 6110,'Wolhusen Zust','Wolhusen Zustellung' +--UNION SELECT 6260,'Reiden Zustellung','Reiden Zustellung' +--UNION SELECT 6060,'Sarnen 2 Zust','Sarnen 2 Zustellung' +--UNION SELECT 8965,'Berikon 1 Zust','Berikon 1 Zustellung' +--UNION SELECT 8260,'Stein a.Rh. 1 Zust','Stein am Rhein 1 Zustellung' +--UNION SELECT 8730,'Uznach Zustellung','Uznach Zustellung' +--UNION SELECT 8840,'Einsiedeln Zust','Einsiedeln Zustellung' +--UNION SELECT 8854,'Siebnen Zust','Siebnen Zustellung' +--UNION SELECT 9230,'Flawil 1 Zust','Flawil 1 Zustellung' +--UNION SELECT 9240,'Uzwil Zustellung','Uzwil Zustellung' +--UNION SELECT 9630,'Wattwil Zust','Wattwil Zustellung' +--UNION SELECT 9053,'Teufen AR Zust','Teufen AR Zustellung' +--UNION SELECT 9410,'Heiden Zustellung','Heiden Zustellung' +--UNION SELECT 9424,'Rheineck Zust','Rheineck Zustellung' +--UNION SELECT 9470,'Buchs SG 1 Zust','Buchs SG 1 Zustellung' +--UNION SELECT 7013,'Domat/Ems Zust','Domat/Ems Zustellung' +--UNION SELECT 7302,'Landquart Zust','Landquart Zustellung' +--UNION SELECT 7320,'Sargans Zustellung','Sargans Zustellung' +--UNION SELECT 7310,'Bad Ragaz Zust','Bad Ragaz Zustellung' +--UNION SELECT 8887,'Mels Zustellung','Mels Zustellung' +--UNION SELECT 8890,'Flums Zustellung','Flums Zustellung' +--UNION SELECT 7503,'Samedan Zustellung','Samedan Zustellung' +--UNION SELECT 4609,'Olten','Olten Sonderdienste' +--UNION SELECT 1772,'Nierlet-les-Bois','Nierlet-les-Bois' +--UNION SELECT 1818,'Montreux Redoute','Montreux La Redoute' +--UNION SELECT 1787,'Mur Vully FR','Mur Vully FR' +--UNION SELECT 1892,'Morcles','Morcles' +--UNION SELECT 2074,'Marin-Centre','Marin-Centre' +--UNION SELECT 9479,'Gretschins','Gretschins' +--UNION SELECT 9479,'Malans SG','Malans SG' +--UNION SELECT 8540,'Frauenfeld CIRCLE','Frauenfeld CIRCLE' +--UNION SELECT 8530,'Frauenfeld CALL','Frauenfeld CALL' +--UNION SELECT 1330,'Daillens CALL','Daillens CALL' +--UNION SELECT 1320,'Daillens CIRCLE','Daillens CIRCLE' +--UNION SELECT 6010,'Kriens 1','Kriens 1' +--UNION SELECT 6010,'Kriens 2 Sternmatt','Kriens 2 Sternmatt' +--UNION SELECT 6010,'Kriens 2','Kriens 2' +--UNION SELECT 6500,'Bellinzona VZ','Bellinzona VZ' +--UNION SELECT 3989,'Grafschaft','Grafschaft' +--UNION SELECT 2500,'Biel/Bienne 10','Biel/Bienne 10' +--UNION SELECT 8564,'Hattenhausen','Hattenhausen' +--UNION SELECT 1440,'Montagny-Chamard','Montagny-Chamard' +--UNION SELECT 2149,'Fretereules','Fretereules' +--UNION SELECT 2149,'Brot-Dessous','Brot-Dessous' +--UNION SELECT 9249,'Oberstetten','Oberstetten' +--UNION SELECT 9249,'Niederstetten','Niederstetten' +--UNION SELECT 8564,'Gunterswilen','Gunterswilen' +--UNION SELECT 1023,'Crissier Closalet','Crissier 2 Closalet' +--UNION SELECT 1023,'Crissier 1','Crissier 1' +--UNION SELECT 3860,'Schattenhalb','Schattenhalb' +--UNION SELECT 2610,'Les Pontins','Les Pontins' +--UNION SELECT 1617,'Tatroz','Tatroz' +--UNION SELECT 1096,'Villette Lavaux','Villette Lavaux' +--UNION SELECT 6383,'Wirzweli','Wirzweli' +--UNION SELECT 2333,'La Cibourg','La Cibourg' +--UNION SELECT 2616,'La Cibourg','La Cibourg' +--UNION SELECT 8556,'Lamperswil TG','Lamperswil TG' +--UNION SELECT 6039,'Root D4','Root D4' +--UNION SELECT 2037,'Montezillon','Montezillon' +--UNION SELECT 1820,'Territet','Territet' +--UNION SELECT 3963,'Crans-Montana 1','Crans-Montana 1' +--UNION SELECT 3963,'Crans-Montana 2','Crans-Montana 2' +--UNION SELECT 6939,'Arosio-Mugena','Arosio-Mugena' +--UNION SELECT 8253,'Diessenhofen Zust','Diessenhofen Zustellung' +--UNION SELECT 2338,'Muriaux','Muriaux' +--UNION SELECT 2748,'Les Ecorcheresses','Les Ecorcheresses' +--UNION SELECT 6900,'Lugano MailSource','Lugano MailSource' +--UNION SELECT 1162,'St-Prex Dist','St-Prex Distribution' +--UNION SELECT 8615,'Freudwil','Freudwil' +--UNION SELECT 6422,'Steinen Zustellung','Steinen Zustellung' +--UNION SELECT 5415,'Nussbaumen AG Zust','Nussbaumen AG Zustellung' +--UNION SELECT 3661,'Uetendorf Zust','Uetendorf Zustellung' +--UNION SELECT 3770,'Zweisimmen Zust','Zweisimmen Zustellung' +--UNION SELECT 1223,'Cologny Dist','Cologny Distribution' +--UNION SELECT 1964,'Conthey Dist','Conthey Distribution' +--UNION SELECT 3454,'Sumiswald Zust','Sumiswald Zustellung' +--UNION SELECT 6710,'Biasca Dist','Biasca Distribuzione' +--UNION SELECT 6963,'Pregassona Dist','Pregassona Distribuzione' +--UNION SELECT 3920,'Zermatt Zustellung','Zermatt Zustellung' +--UNION SELECT 1969,'Eison St-Martin','Eison St-Martin' +--UNION SELECT 3977,'Granges VS Dist','Granges VS Distribution' +--UNION SELECT 4034,'Basel 34 Breite','Basel 34 Breite' +--UNION SELECT 3623,'Buchen BE','Buchen BE' +--UNION SELECT 4588,'Brittern','Brittern' +--UNION SELECT 4000,'Basel','Basel SPILOG' +--UNION SELECT 9463,'Oberriet SG Zust','Oberriet SG Zustellung' +--UNION SELECT 9113,'Degersheim Zust','Degersheim Zustellung' +--UNION SELECT 8762,'Schwanden GL Zust','Schwanden GL Zustellung' +--UNION SELECT 8472,'Seuzach Zustellung','Seuzach Zustellung' +--UNION SELECT 5415,'Hertenstein AG','Hertenstein AG' +--UNION SELECT 5415,'Rieden AG','Rieden AG' +--UNION SELECT 9604,'Unterrindal','Unterrindal' +--UNION SELECT 3071,'Ostermundigen Zust','Ostermundigen Zustellung' +--UNION SELECT 2013,'Boudry Dist Ba','Boudry Dist Ba' +--UNION SELECT 4033,'Basel','Basel 33 Novartis' +--UNION SELECT 8902,'Urdorf Dist Ba','Urdorf Dist Ba' +--UNION SELECT 3039,'Bern PF OC','Bern PF Operations Center' +--UNION SELECT 4000,'Basel PF OC','Basel PF Operations Center' +--UNION SELECT 3983,'Greich','Greich' +--UNION SELECT 1816,'Chailly Dist','Chailly-Montreux Dist' +--UNION SELECT 8240,'Thayngen Zust','Thayngen Zustellung' +--UNION SELECT 3537,'Eggiwil Zustellung','Eggiwil Zustellung' +--UNION SELECT 3715,'Adelboden Zust','Adelboden Zustellung' +--UNION SELECT 3818,'Grindelwald Zust','Grindelwald Zustellung' +--UNION SELECT 5242,'Birr-Lupfig Zust','Birr-Lupfig Zustellung' +--UNION SELECT 5605,'Dottikon Zust','Dottikon Zustellung' +--UNION SELECT 5703,'Seon Zustellung','Seon Zustellung' +--UNION SELECT 5726,'Unterkulm Zust','Unterkulm Zustellung' +--UNION SELECT 6023,'Rothenburg Zust','Rothenburg Zustellung' +--UNION SELECT 6037,'Root Zustellung','Root Zustellung' +--UNION SELECT 6043,'Adligenswil Zust','Adligenswil Zustellung' +--UNION SELECT 6045,'Meggen Zustellung','Meggen Zustellung' +--UNION SELECT 6055,'Alpnach Zustellung','Alpnach Zustellung' +--UNION SELECT 6374,'Buochs Zustellung','Buochs Zustellung' +--UNION SELECT 3071,'O''mundigen Dist Ba','Ostermundigen Distributions' +--UNION SELECT 1347,'Le Sentier Dist','Le Sentier Distribution' +--UNION SELECT 9494,'Schaan Zustellung','Schaan Zustellung' +--UNION SELECT 8901,'Urdorf','Urdorf Tessi' +--UNION SELECT 8450,'Andelfingen Zust','Andelfingen Zustellung' +--UNION SELECT 2035,'Corcelles NE Dist','Corcelles NE Distribution' +--UNION SELECT 3175,'Flamatt Zustellung','Flamatt Zustellung' +--UNION SELECT 6017,'Ruswil Zustellung','Ruswil Zustellung' +--UNION SELECT 6162,'Entlebuch Zust','Entlebuch Zustellung' +--UNION SELECT 6182,'Escholzmatt Zust','Escholzmatt Zustellung' +--UNION SELECT 8722,'Kaltbrunn Zust','Kaltbrunn Zustellung' +--UNION SELECT 8494,'Bauma Zustellung','Bauma Zustellung' +--UNION SELECT 6204,'Sempach Stadt','Sempach Stadt' +--UNION SELECT 7078,'Lenzerheide Zust','Lenzerheide Zustellung' +--UNION SELECT 3041,'Bern UBS','Bern UBS' +--UNION SELECT 4000,'Basel','Basel UBS' +--UNION SELECT 8107,'Buchs ZH Zust','Buchs ZH Zustellung' +--UNION SELECT 8488,'Turbenthal Zust','Turbenthal Zustellung' +--UNION SELECT 7050,'Arosa Zust','Arosa Zustellung' +--UNION SELECT 9489,'Schaan Log','Schaan Log' +--UNION SELECT 3256,'Seewil','Seewil' +--UNION SELECT 1071,'Chexbres Dist','Chexbres Distribution' +--UNION SELECT 1854,'Leysin Dist','Leysin Distribution' +--UNION SELECT 8135,'Sihlwald','Sihlwald' +--UNION SELECT 8152,'GlattparkOpfikon','Glattpark Opfikon' +--UNION SELECT 5645,'Fenkrieden','Fenkrieden' +--UNION SELECT 4000,'Basel','Basel' +--UNION SELECT 9602,'Bazenheid Zust','Bazenheid Zustellung' +--UNION SELECT 7430,'Thusis Zustellung','Thusis Zustellung' +--UNION SELECT 7130,'Ilanz Zustellung','Ilanz Zustellung' +--UNION SELECT 1926,'Fully Dist','Fully Distribution' +--UNION SELECT 1296,'Coppet Dist','Coppet Distribution' +--UNION SELECT 1782,'Formangueires','Formangueires' +--UNION SELECT 7513,'Silvaplana-Surlej','Silvaplana-Surlej' +--UNION SELECT 8543,'Gundetswil','Gundetswil' +--UNION SELECT 4000,'Basel SPI GLS','Basel SPI GLS Retour' +--UNION SELECT 3940,'Steg-Gampel','Steg-Gampel' +--UNION SELECT 8109,'Kloster Fahr','Kloster Fahr' +--UNION SELECT 1039,'Cheseaux Polyval','Cheseaux Polyval' +--UNION SELECT 6346,'Baar 3','Baar 3' +--UNION SELECT 6346,'Baar 3 Dist Ba','Baar 3 Dist Ba' +--UNION SELECT 3085,'Wabern Weihnachten','Wabern 2 x Weihnachten' +--UNION SELECT 8952,'Schlieren DS','Schlieren DocumentServices' +--UNION SELECT 3050,'Bern DS','Bern DocumentServices' +--UNION SELECT 6010,'Kriens LZB','Kriens Logistikzentrum' +--UNION SELECT 6590,'Cadenazzo CLL','Cadenazzo Centro logistico' +--UNION SELECT 9200,'Gossau SG LZB','Gossau SG Logistikzentrum' +--UNION SELECT 4702,'Oensingen Hub','Oensingen Hub SecurePost' +--UNION SELECT 9494,'Schaan BZ','Schaan Betriebszentrum' +--UNION SELECT 1148,'La Coudre','La Coudre' +--UNION SELECT 1919,'Martigny Mutuel','Martigny Groupe Mutuel' +--UNION SELECT 1001,'Lausanne Sozialb.','Lausanne Sozialberatung' +--UNION SELECT 1700,'Fribourg PF Fil.','Fribourg PostFinance Fil.' +--UNION SELECT 4808,'Zofingen PF','Zofingen PostFinance' +--UNION SELECT 4800,'Zofingen PFinance','Zofingen PostFinance' +--UNION SELECT 3400,'Burgdorf Filiale','Burgdorf Filiale' +--UNION SELECT 4807,'Zofingen PF','Zofingen PostFinance' +--UNION SELECT 8352,'Ricketwil','Ricketwil Winterthur' +--UNION SELECT 4310,'Rheinfelden SPI','Rheinfelden SPI Logistics A' +--UNION SELECT 4133,'Pratteln SPI','Pratteln SPI Logistics' +--UNION SELECT 4809,'Zofingen PF','Zofingen Postfinance UBS' +--UNION SELECT 3400,'Burgdorf PF mob','Burgdorf PostFinance mob' +--UNION SELECT 4800,'Zofingen PF UBS','Zofingen PF UBS Verarb.' +--UNION SELECT 8545,'Rickenbach Sulz','Rickenbach Sulz' +--UNION SELECT 8543,'Kefikon ZH','Kefikon ZH' +--UNION SELECT 8310,'Grafstal','Grafstal' +--UNION SELECT 8465,'Wildensbuch','Wildensbuch' +--UNION SELECT 3017,'Bern Zustellung','Bern Zustellung' +--UNION SELECT 9494,'Schaan BZ GKS','Schaan BZ GKS' +--UNION SELECT 9301,'Wittenbach','Wittenbach' +--UNION SELECT 8412,'Riet Neftenbach','Riet Neftenbach' +--UNION SELECT 6511,'Cadenazzo SC','Cadenazzo Scanning-Center' +--UNION SELECT 5643,'Meienberg','Meienberg' +--UNION SELECT 3823,'Kleine Scheidegg','Kleine Scheidegg' +--UNION SELECT 3823,'Eigergletscher','Eigergletscher' +--UNION SELECT 3029,'Bern','Bern' +--UNION SELECT 8200,'Schaffhausen PF','Schaffhausen PF' +--UNION SELECT 9050,'Appenzell Eggerst.','Appenzell Eggerstanden' +--UNION SELECT 9050,'Appenzell Steinegg','Appenzell Steinegg' +--UNION SELECT 9050,'Appenzell Schlatt','Appenzell Schlatt' +--UNION SELECT 9057,'Wasserauen','Wasserauen' +--UNION SELECT 9108,'Gontenbad','Gontenbad' +--UNION SELECT 6000,'Luzern PF Fil','Luzern PF Fil' +--UNION SELECT 9108,'Jakobsbad','Jakobsbad' +--UNION SELECT 7110,'Peiden','Peiden' +--UNION SELECT 6595,'Riazzino Dist','Riazzino Distribuzione' +--UNION SELECT 6987,'Caslano Dist','Caslano Distribuzione' +--UNION SELECT 6593,'Cadenazzo Dist','Cadenazzo Distribuzione' +--UNION SELECT 1356,'La Russille','La Russille' +--UNION SELECT 8307,'Effretikon PAG','Effretikon PostAuto AG' +--UNION SELECT 9245,'Sonnental','Sonnental' +--UNION SELECT 4310,'Rheinfelden PAuto','Rheinfelden PostAuto AG' +--UNION SELECT 2802,'Develier PostAuto','Develier PostAuto AG' +--UNION SELECT 2340,'Le Noirmont Dist','Le Noirmont Distribution' +--UNION SELECT 3206,'Ferenbalm','Ferenbalm' +--UNION SELECT 3206,'Biberen','Biberen' +--UNION SELECT 3206,'Gammen','Gammen' +--UNION SELECT 4800,'Zofingen B&V GK','Zofingen B&V GK' +--UNION SELECT 8852,'Altendorf B&V GK 2','Altendorf B&V GK 2' +--UNION SELECT 2362,'Montfaucon','Montfaucon' +--UNION SELECT 2362,'Montfavergier','Montfavergier' +--UNION SELECT 2363,'Les Enfers','Les Enfers' +--UNION SELECT 2364,'St-Brais','St-Brais' +--UNION SELECT 3030,'Bern KC PK 5','Bern KC PK 5' +--UNION SELECT 6010,'Kriens KC PGGK2','Kriens KC PG/GK 2' +--UNION SELECT 4600,'Olten Personal','Olten Personal' +--UNION SELECT 1001,'Lausanne PF331-140','Lausanne PF 331-140' +--UNION SELECT 1001,'Lausanne Jurassien','Lausanne Arc Jurassien' +--UNION SELECT 4800,'Zofi. KC PKGK 3','Zofingen KC PK/GK 3' +--UNION SELECT 9030,'St. Josefen','St. Josefen' +--UNION SELECT 8723,'Maseltrangen','Maseltrangen' +--UNION SELECT 3434,'Landiswil','Landiswil' +--UNION SELECT 8970,'Urdorf Exchange','Urdorf Exchange' +--UNION SELECT 1984,'La Tour VS','La Tour VS' +--UNION SELECT 1985,'La Forclaz VS','La Forclaz VS' +--UNION SELECT 1401,'Yverdon Conseil','Yverdon Conseil et vente' +--UNION SELECT 3071,'Ostermundigen KATA','Ostermundigen KATA' +--UNION SELECT 5412,'Vogelsang AG','Vogelsang AG' +--UNION SELECT 8645,'Jona Buech Gewerbe','Jona Buech Gewerbe' +--UNION SELECT 1997,'Sornard Nendaz','Sornard Nendaz' +--UNION SELECT 9533,'Dietschwil','Dietschwil' +--UNION SELECT 8332,'Rumlikon','Rumlikon' +--UNION SELECT 8371,'Busswil TG','Busswil TG' +--UNION SELECT 3930,'Visp Verkauf','Visp Verkaufssupport' +--UNION SELECT 4800,'Zofi. KC PKGK4','Zofingen KC PK/GK 4' +--UNION SELECT 6023,'Rothenburg DIST BA','Rothenburg DIST BA' +--UNION SELECT 4800,'Zofi. KC PKGK 5','Zofingen KC PK/GK 5' +--UNION SELECT 3072,'Ostermundigen Ober','Ostermundigen Oberdorf' +--UNION SELECT 7212,'Seewis-Pardisla','Seewis-Pardisla' +--UNION SELECT 7212,'Seewis-Schmitten','Seewis-Schmitten' +--UNION SELECT 8212,'Neuhausen Rundbuck','Neuhausen Rundbuck' +--UNION SELECT 9023,'St. Gallen','St. Gallen' +--UNION SELECT 4144,'Arlesheim Hub','Arlesheim Postlogistics Hub' +--UNION SELECT 4800,'Zofingen KC PK 2','Zofingen KC PK 2' +--UNION SELECT 5000,'Aarau Altstadt','Aarau Altstadt' +--UNION SELECT 1000,'Lausanne 10','Lausanne 10' +--UNION SELECT 1000,'Lausanne 18','Lausanne 18' +--UNION SELECT 3075,'Vielbringen Worb','Vielbringen b. Worb' +--UNION SELECT 1800,'Vevey Orient','Vevey Orient' +--UNION SELECT 6000,'Luzern Altstadt','Luzern Altstadt' +--UNION SELECT 8574,'Lengwil','Lengwil' +--UNION SELECT 8574,'Dettighofen Lengw.','Dettighofen Lengwil' +--UNION SELECT 1880,'Les Posses-sur-Bex','Les Posses-sur-Bex' +--UNION SELECT 6590,'Cadenazzo CLL AP','Cadenazzo CLL AP' +--UNION SELECT 9200,'Gossau SG LZB FP','Gossau SG LZB FP' +--UNION SELECT 1953,'Sion RZ','Sion RZ' +--UNION SELECT 8155,'Nassenwil','Nassenwil' +--UNION SELECT 4800,'Zofingen Abg. St','Zofingen Abg. St' +--UNION SELECT 1580,'Donatyre','Donatyre' +--UNION SELECT 1721,'Cournillens','Cournillens' +--UNION SELECT 3961,'Mission','Mission' +--UNION SELECT 4600,'Olten 4 Hammer','Olten 4 Hammer' +--UNION SELECT 1310,'Daillens PL3','Daillens PL3' +--UNION SELECT 3030,'Bern PL3','Bern PL3' +--UNION SELECT 4133,'Pratteln PL3','Pratteln PL3' +--UNION SELECT 4704,'Niederbipp PL3','Niederbipp PL3' +--UNION SELECT 5606,'Dintikon PL3','Dintikon PL3' +--UNION SELECT 5612,'Villmergen PL3','Villmergen PL3' +--UNION SELECT 6593,'Cadenazzo PL3','Cadenazzo PL3' +--UNION SELECT 8422,'Pfungen PL3','Pfungen PL3' +--UNION SELECT 8902,'Urdorf PL3','Urdorf PL3' +--UNION SELECT 2305,'La Chaux-de-Fonds','La Chaux-de-Fonds' +--UNION SELECT 6010,'Kriens ContCent','Kriens Contact Center' +--UNION SELECT 8580,'Biessenhofen','Biessenhofen' +--UNION SELECT 1232,'Confignon Cressy','Confignon Cressy' +--UNION SELECT 4028,'Basel','Basel' +--UNION SELECT 6203,'Sempach Bahnhof GK','Sempach Bahnhof GK' +--UNION SELECT 8509,'Frauenfeld','Frauenfeld' +--UNION SELECT 8970,'Urdorf Exchange PL','Urdorf Exchange PL' +--UNION SELECT 3000,'Bern PAS','Bern PAS' +--UNION SELECT 5313,'Klingnau Wiesenweg','Klingnau Wiesenweg' +--UNION SELECT 8953,'Dietikon Silbern','Dietikon Silbern' +--UNION SELECT 6875,'Campora','Campora' +--UNION SELECT 6130,'Willisau Rotmatt','Willisau Rotmatt' +--UNION SELECT 8403,'Winterthur','Winterthur' +--UNION SELECT 5004,'Aarau Tellistr','Aarau Tellistrasse' +--UNION SELECT 6242,'Wauwil Dorfstrasse','Wauwil Dorfstrasse' +--UNION SELECT 8411,'Winterthur Pflanz.','Winterthur Pflanzschulstr' +--UNION SELECT 9423,'Altenrhein Dorfstr','Altenrhein Dorfstrasse' +--UNION SELECT 1211,'Genf SPS','Genf SPS' +--UNION SELECT 3001,'Bern SPS','Bern SPS' +--UNION SELECT 4002,'Basel SPS','Basel SPS' +--UNION SELECT 5001,'Aarau SPS','Aarau SPS' +--UNION SELECT 6002,'Luzern SPS','Luzern SPS' +--UNION SELECT 6301,'Zug SPS','Zug SPS' +--UNION SELECT 6501,'Bellinzona SPS','Bellinzona SPS' +--UNION SELECT 6601,'Locarno SPS','Locarno SPS' +--UNION SELECT 6830,'Chiasso SPS','Chiasso SPS' +--UNION SELECT 6901,'Lugano SPS','Lugano SPS' +--UNION SELECT 5463,'Wislikofen Probst.','Wislikofen Probsteiweg' +--UNION SELECT 8404,'Winterthur im LInk','Winterthur im LInk' +--UNION SELECT 8620,'Wetzikon Kastell','Wetzikon Kastellstrasse' +--UNION SELECT 9494,'Schaan IMPC','Schaan IMPC' +--UNION SELECT 1305,'Penthalaz Dist','Penthalaz Distribution' +--UNION SELECT 3000,'Bern 1 PostParc','Bern 1 PostParc' +--UNION SELECT 9442,'Berneck Zust','Berneck Zustellung' +--UNION SELECT 8500,'Frauenfeld Murgstr','Frauenfeld Murgstrasse' +--UNION SELECT 9524,'Zuzwil SG Gewerbe','Zuzwil SG Gewerbestrasse' +--UNION SELECT 6300,'Zug','Zug' +--UNION SELECT 6960,'Odogno','Odogno' +--UNION SELECT 3802,'Interlaken Ost','Interlaken Ost' +--UNION SELECT 8489,'Schalchen','Schalchen' +--UNION SELECT 8489,'Ehrikon','Ehrikon' +--UNION SELECT 3000,'Bern Finform','Bern Finform' +--UNION SELECT 7500,'St. Moritz Dorf','St. Moritz Dorf' +--UNION SELECT 3613,'Steffisburg a.B.','Steffisburg alte Bernstr' +--UNION SELECT 9320,'Arbon Stickereistr','Arbon Stickereistrasse' +--UNION SELECT 8620,'Wetzikon Post','Wetzikon Poststrasse' +--UNION SELECT 6032,'Emmen Seetalstr','Emmen Seetalstrasse' +--UNION SELECT 8370,'Sirnach Dist Ba','Sirnach Distributionsbasis' +--UNION SELECT 7304,'Maienfeld Stutz','Maienfeld Stutz' +--UNION SELECT 7606,'Bondo','Bondo' +--UNION SELECT 6330,'Cham Hinterbergstr','Cham Hinterbergstrasse' +--UNION SELECT 8253,'Diessenhofen Bahn','Diessenhofen Bahnhofstrasse' +--UNION SELECT 9443,'Widnau Industrie','Widnau Industriestrasse' +--UNION SELECT 8370,'Sirnach Zust','Sirnach Zustellung' +--UNION SELECT 6616,'Losone via Locarno','Losone via Locarno' +--UNION SELECT 9494,'Schaan BZ Annahme','Schaan BZ Annahme' +--UNION SELECT 8301,'Glattzentrum N.W.','Glattzentrum N. Wint.str.' +--UNION SELECT 8352,'Elsau St. Gallers.','Elsau St. Gallerstrasse' +--UNION SELECT 3052,'Zollikofen Waldstr','Zollikofen Waldstrasse' +--UNION SELECT 6010,'Kriens Luzernerstr','Kriens Luzernerstrasse' +--UNION SELECT 6998,'Monteggio','Monteggio' +--UNION SELECT 6998,'Monteggio 2','Monteggio 2' +--UNION SELECT 6030,'Ebikon Mall Switz.','Ebikon Mall of Switzerland' +--UNION SELECT 6048,'Horw Gemeindehaus','Horw Gemeindehausplatz' +--UNION SELECT 6370,'Stans Bahnhofplatz','Stans Bahnhofplatz' +--UNION SELECT 8603,'Schwerzenbach Bahn','Schwerzenbach Bahnstrasse' +--UNION SELECT 8604,'Volketswil Zentrum','Volketswil Zentrum' +--UNION SELECT 8354,'Dickbuch','Dickbuch' +--UNION SELECT 4450,'Sissach Postgasse','Sissach Postgasse' +--UNION SELECT 1870,'Monthey Ave gare','Monthey Avenue de la gare' +--UNION SELECT 4665,'Oftringen LS ThC','Oftringen LS ThermoCare' +--UNION SELECT 4702,'Oensingen Soloth.','Oensingen Solothurnstrasse' +--UNION SELECT 8424,'Embrach Dorfstr','Embrach Dorfstrasse' +--UNION SELECT 7000,'Chur Postplatz','Chur Postplatz' +--UNION SELECT 4605,'Olten','Olten' +--UNION SELECT 5200,'Brugg AG Bahnhof','Brugg AG Bahnhofstrasse' +--UNION SELECT 3963,'Crans-sur-Sierre','Crans-sur-Sierre' +--UNION SELECT 3645,'Gwatt Lohnerstr','Gwatt Thun Lohnerstrasse' +--UNION SELECT 5330,'Bad Zurzach Haupt.','Bad Zurzach Hauptstrasse' +--UNION SELECT 3250,'Lyss Werkstrasse','Lyss Werkstrasse' +--UNION SELECT 6548,'Sta. Domenica','Sta. Domenica' +--UNION SELECT 3040,'Bern BPMP','Bern BPMP' +--UNION SELECT 3000,'Bern Lorraine','Bern Lorraine' +--UNION SELECT 6591,'Cadenazzo CPR','Cadenazzo CPR' +--UNION SELECT 6591,'Cadenazzo Spart P','Cadenazzo Spartizione P' +--UNION SELECT 6530,'Cadenazzo CALL','Cadenazzo CALL' +--UNION SELECT 8203,'Schaffh. Buchthal.','Schaffhausen Buchthalen' +--UNION SELECT 4127,'Birsfelden Haupt.','Birsfelden Hauptstrasse' +--UNION SELECT 4144,'Arlesheim Postpl.','Arlesheim Postplatz' +--UNION SELECT 6033,'Buchrain Schiltw.','Buchrain Schiltwald' +--UNION SELECT 3400,'Burgdorf Bahnhof','Burgdorf Bahnhofstrasse' +--UNION SELECT 6814,'Lamone-Cad. Cant.','Lamone-Cadempino via Cant.' +--UNION SELECT 4852,'Rothrist Bernstr.','Rothrist Bernstrasse' +--UNION SELECT 6340,'Baar Dorfstrasse','Baar Dorfstrasse' +--UNION SELECT 6130,'Willisau Dist Hub','Willisau Dist Hub' +--UNION SELECT 6280,'Hochdorf Hauptstr','Hochdorf Hauptstrasse' +--UNION SELECT 9500,'Wil SG Hubstrasse','Wil SG Hubstrasse' +--UNION SELECT 2560,'Nidau Weyermatt','Nidau Weyermattstrasse' +--UNION SELECT 2074,'Marin-Epagnier Lys','Marin-Epagnier Fleur de Lys' +--UNION SELECT 3600,'Thun Aarestrasse','Thun Aarestrasse' +--UNION SELECT 7200,'Untervaz Sort.','Untervaz Sortierung' +--UNION SELECT 7200,'Untervaz RPZ','Untervaz RPZ' +--UNION SELECT 7210,'Untervaz CIRCLE','Untervaz CIRCLE' +--UNION SELECT 7230,'Untervaz CALL','Untervaz CALL' +--UNION SELECT 1630,'Bulle Moulin','Bulle rue du Moulin' +--UNION SELECT 2500,'Biel/Bienne B/G GK','Biel/Bienne Bahnhof/Gare GK' +--UNION SELECT 3080,'Ostermundigen CIRC','Ostermundigen CIRCLE' +--UNION SELECT 3090,'Ostermundigen CALL','Ostermundigen CALL' +--UNION SELECT 3071,'Ostermundigen Sort','Ostermundigen Sortierung' +--UNION SELECT 3018,'Bern Freiburgstr','Bern Freiburgstrasse' +--UNION SELECT 6043,'Adligenswil Ebik.','Adligenswil Ebikonerstrasse' +--UNION SELECT 1630,'Bulle Gare TPF','Bulle Gare TPF' +--UNION SELECT 8310,'Kemptthal Kemptp.','Kemptthal Kemptpark' +--UNION SELECT 4147,'Aesch BL Hauptstr','Aesch BL Hauptstrasse' +--UNION SELECT 4153,'Reinach BL Austr','Reinach BL Austrasse' +--UNION SELECT 5600,'Lenzburg Muracker','Lenzburg Murackerstrasse' +--UNION SELECT 5070,'Frick Widenplatz','Frick Widenplatz' +--UNION SELECT 6883,'Novazzano Via P.B.','Novazzano Via P. Bernasconi' +--UNION SELECT 1400,'Yverdon Ch-Lovats','Yverdon-les-Bains Ch-Lovats' +--UNION SELECT 2500,'Biel/Bienne Rennw.','Biel/Bienne Rennweg' +--UNION SELECT 5630,'Muri AG Seetalstr.','Muri AG Seetalstrasse' +--UNION SELECT 6210,'Sursee Schellenr.','Sursee Schellenrain' +--UNION SELECT 5430,'Wettingen Bahnhof','Wettingen Bahnhof' +--UNION SELECT 4123,'Allschwil Basler','Allschwil Baslerstrasse' +--UNION SELECT 4133,'Pratteln Bahnhofst','Pratteln Bahnhofstrasse' +--UNION SELECT 5430,'Wettingen Seminar','Wettingen Seminarstrasse' +--UNION SELECT 8134,'Adliswil Poststr','Adliswil Poststrasse' +--UNION SELECT 8636,'Wald ZH Poststr','Wald ZH Poststrasse' +--UNION SELECT 1310,'Daillens SPS','Daillens SPS' +--UNION SELECT 3360,'Herzogenbuchs. Lag','Herzogenbuchsee Lagerstr' +--UNION SELECT 4810,'Zofingen PF','Zofingen PF' +--UNION SELECT 1920,'Martigny rue Avou.','Martigny rue des Avouillons' +--UNION SELECT 6593,'Cadenazzo ZF','Cadenazzo Fundstelle' +--UNION SELECT 9494,'Schaan Paketzust.','Schaan Paketzustellung' +--UNION SELECT 8940,'Urdorf CIRCLE','Urdorf CIRCLE' +--UNION SELECT 8930,'Urdorf CALL','Urdorf CALL' +--UNION SELECT 8920,'Urdorf PZ','Urdorf Paketzentrum' +--UNION SELECT 4528,'Zuchwil Hauptstr','Zuchwil Hauptstrasse' +--UNION SELECT 4133,'Pratteln RPZ','Pratteln RPZ' +--UNION SELECT 9472,'Grabs Staatsstr','Grabs Staatsstrasse' +--UNION SELECT 5615,'Fahrwangen Hinterg','Fahrwangen Hintergasse' +--UNION SELECT 4800,'Zofingen U. Graben','Zofingen Untere Grabenstr' +--UNION SELECT 4600,'Olten Bahnhofstr','Olten Bahnhofstrasse' +--UNION SELECT 4132,'Muttenz Hauptstr','Muttenz Hauptstrasse' +--UNION SELECT 3063,'Ittigen Talgut-Z.','Ittigen Talgut-Zentrum' +--UNION SELECT 1023,'Crissier Chisaz','Crissier Chemin de Chisaz' +--UNION SELECT 1110,'Morges Charpent.','Morges Rue des Charpentiers' +--UNION SELECT 6102,'Malters Luzernstr','Malters Luzernstrasse' +--UNION SELECT 4415,'Lausen Grammontstr','Lausen Grammontstrasse' +--UNION SELECT 3015,'Bern Weltpoststr','Bern Weltpoststrasse' +--UNION SELECT 8302,'Kloten Bahnhofstr','Kloten Bahnhofstrasse' +--UNION SELECT 4665,'Oftringen Tychb.','Oftringen Tychboden' +--UNION SELECT 8152,'Glattbrugg Schaff.','Glattbrugg Schaffhauserstr' +--UNION SELECT 6030,'Ebikon Riedmattstr','Ebikon Riedmattstrasse' +--UNION SELECT 3752,'Wimmis Herrenmatte','Wimmis Herrenmattestr' +--UNION SELECT 8810,'Horgen Bahnhofstr','Horgen Bahnhofstrasse' +--UNION SELECT 6675,'Cevio Dist','Cevio Distribuzione' +--UNION SELECT 3902,'Glis Gliserallee','Glis Gliserallee' +--UNION SELECT 3380,'Wangen B''hofallee','Wangen a.d.A. Bahnhofallee' +--UNION SELECT 6003,'Luzern Hirschengr','Luzern Hirschengraben' +--UNION SELECT 1228,'Plan-les-Oua Pl. A','Plan-les-Ouates Place des A' +--UNION SELECT 4057,'Basel Hochberger','Basel Hochbergerstrasse' +--UNION SELECT 6981,'Beride d. Bedigli.','Beride di Bedigliora' +--UNION SELECT 7526,'Chapella','Chapella' +--UNION SELECT 1440,'Montagny-Ch. Cham.','Montagny-Chamard En Chamard' +--UNION SELECT 5103,'Wildegg Poststr','Wildegg Poststrasse' +--UNION SELECT 4914,'Roggwil BE Dorfstr','Roggwil BE Dorfstrasse' +--UNION SELECT 9021,'St. Gallen MS','St. Gallen MS' +--UNION SELECT 8840,'Einsiedeln Bhfpl.','Einsiedeln Bahnhofplatz' +--UNION SELECT 4802,'Strengelbach D.Hub','Strengelbach Dist Hub' +--UNION SELECT 4036,'Basel CALL','Basel CALL' +--UNION SELECT 4014,'Basel CIRCLE','Basel CIRCLE' +--UNION SELECT 1844,'Villeneuve VD C.S.','Villeneuve VD Ave C.d.S.' +--UNION SELECT 4125,'Riehen Bahnhofstr','Riehen Bahnhofstrasse' +--UNION SELECT 7270,'Davos Platz Talstr','Davos Platz Talstrasse' +--UNION SELECT 1180,'Rolle Ch. Famolens','Rolle Chemin du Famolens' +--UNION SELECT 4104,'Oberwil BL Konsum.','Oberwil BL Konsumstrasse' +--UNION SELECT 5612,'Villmergen Grenzw.','Villmergen Grenzweg' +--UNION SELECT 6043,'Adligenswil D.Hub','Adligenswil Dist Hub' +--UNION SELECT 8910,'Affoltern Obfelder','Affoltern am Albis Obfelder' +--UNION SELECT 4009,'Basel Ahornstrasse','Basel Ahornstrasse' +--UNION SELECT 8215,'Hallau Neunkirch.','Hallau Neunkircherstrasse' +--UNION SELECT 4503,'Solothurn Allmend','Solothurn Allmendstrasse' +--UNION SELECT 5033,'Buchs AG RPZ','Buchs AG RPZ' +--UNION SELECT 5050,'Buchs AG CALL','Buchs AG CALL' +--UNION SELECT 5030,'Buchs AG Sort','Buchs AG Sortierung' +--UNION SELECT 5060,'Buchs AG CIRCLE','Buchs AG CIRCLE' +--UNION SELECT 4130,'Pratteln CALL','Pratteln CALL' +--UNION SELECT 4134,'Pratteln Sort','Pratteln Sortierung' +--UNION SELECT 3550,'Langnau i. E.Bahn','Langnau i. E. Bahnhofstr' +--UNION SELECT 8870,'Niederurnen PF','Niederurnen PF' +--UNION SELECT 4001,'Basel Freie Str','Basel Freie Strasse' +--UNION SELECT 1026,'Echandens-D. Lonay','Echandens-Denges Rte Lonay' +--UNION SELECT 6850,'Mendrisio V.S:F.','Mendrisio Staz St.Franscini' +--UNION SELECT 1214,'Vernier r. Village','Vernier rue du Village' +--UNION SELECT 1227,'Les Acacias R.G.L','Les Acacias Rte Grand-Lancy' +--UNION SELECT 6005,'Luzern Frohburgstr','Luzern Frohburgstrasse' +--UNION SELECT 1030,'Bussigny Industrie','Bussigny rue de l''Industrie' +--UNION SELECT 8300,'Wallisellen Sort','Wallisellen Sort' +--UNION SELECT 8304,'Wallisellen RPZ','Wallisellen RPZ' +--UNION SELECT 8350,'Wallisellen CALL','Wallisellen CALL' +--UNION SELECT 8326,'Wallisellen CIRCLE','Wallisellen CIRCLE' +--UNION SELECT 3960,'Sierre Rue Falcon','Sierre Rue de l''Ile Falcon' +--UNION SELECT 4089,'Basel ZollNoData','Basel ZollNoData' +--UNION SELECT 4089,'Basel ZollGesperrt','Basel ZollGesperrt' +--UNION SELECT 4089,'Basel ZollBeschau','Basel ZollBeschau' +--UNION SELECT 4089,'Basel ZollExtern','Basel ZollExtern' +--UNION SELECT 6210,'Sursee Wassergrabe','Sursee Wassergrabe' +--UNION SELECT 3123,'Belp Rubigenstr','Belp Rubigenstrasse' +--UNION SELECT 6131,'Willisau Competec','Willisau Competec' +--UNION SELECT 1095,'Lutry Route Lavaux','Lutry Route de Lavaux' +--UNION SELECT 2540,'Grenchen Maienstr.','Grenchen Maienstrasse' +--UNION SELECT 1950,'Sion rue Casernes','Sion rue des Casernes' +--UNION SELECT 1860,'Aigle Chem. Orlons','Aigle Chemin des Orlons' +--UNION SELECT 8706,'Meilen Dorfstrasse','Meilen Dorfstrasse' +--UNION SELECT 6517,'Arbedo Dist.','Arbedo Distribuzione' +--UNION SELECT 6852,'Genestrerio Dist.','Genestrerio Distribuzione' +--UNION SELECT 6916,'Grancia Dist.','Grancia Distribuzione' +--UNION SELECT 4133,'Pratteln Hohenrain','Pratteln Hohenrainstrasse' +--UNION SELECT 1680,'Romont FR AncFerme','Romont FR Rte Anc. Ferme' +--UNION SELECT 1242,'Satigny Aire Ville','Satigny Rte d''Aire-la-Ville' +--UNION SELECT 6010,'Kriens Zust Pakete','Kriens Zustellung Pakete' +--UNION SELECT 5503,'Schafisheim Coop','Schafisheim Coop Verteilz.' +--UNION SELECT 2544,'Bettlach Zust','Bettlach Zustellung' +--UNION SELECT 3937,'SAB Baltschieder','SAB Baltschieder' +--UNION SELECT 7320,'Sargans Langgraben','Sargans Langgrabenstrasse' +--UNION SELECT 9200,'Gossau SG Zust P','Gossau SG Zustellung Pakete' diff --git a/OCTPDBA-380 - data masker/restore all.sql b/OCTPDBA-380 - data masker/restore all.sql new file mode 100644 index 0000000..a1da29a --- /dev/null +++ b/OCTPDBA-380 - data masker/restore all.sql @@ -0,0 +1,54 @@ +USE master + +EXEC sandbox.dbo.setMasterIdentity @in_type = 'phcy' -- varchar(10) +--EXEC sandbox.dbo.setMasterIdentity @in_type = 'adrRef' -- varchar(10) + +ALTER DATABASE [ArizonaREP] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; +RESTORE DATABASE [ArizonaREP] FROM DISK = N'D:\backups\ama adr ref N1\ArizonaREP_Dump.bak' WITH FILE = 1, MOVE N'ArizonaREP_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ArizonaREP.mdf', MOVE N'ArizonaREP_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ArizonaREP_1.ldf', NOUNLOAD, REPLACE, STATS = 5 +ALTER DATABASE [ArizonaREP] SET MULTI_USER WITH ROLLBACK IMMEDIATE; +GO +ALTER DATABASE [ArizonaREP] SET RECOVERY SIMPLE +GO + +ALTER DATABASE Arizona SET SINGLE_USER WITH ROLLBACK IMMEDIATE; +RESTORE DATABASE [Arizona] FROM DISK = N'D:\backups\ama705\Arizona_Dump.bak' WITH FILE = 1, MOVE N'Arizona_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\Arizona.mdf', MOVE N'Arizona_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\Arizona_1.ldf', MOVE N'Arizona_FSData' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\Arizona_FSData', NOUNLOAD, REPLACE, STATS = 5 +ALTER DATABASE Arizona SET MULTI_USER WITH ROLLBACK IMMEDIATE; +GO +ALTER DATABASE [Arizona] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [ArizonaCASH] FROM DISK = N'D:\backups\ama705\ArizonaCASH_Dump.bak' WITH FILE = 1, MOVE N'ArizonaCASH_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ArizonaCASH.mdf', MOVE N'ArizonaCASH_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ArizonaCASH_log.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [ArizonaCASH] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [ActivePos_read] FROM DISK = N'D:\backups\ama705\ActivePos_read_Dump.bak' WITH FILE = 1, MOVE N'ActivePos_read_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActivePos_read.mdf', MOVE N'ActivePos_read_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActivePos_read_log.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [ActivePos_read] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [ActivePos_server] FROM DISK = N'D:\backups\ama705\ActivePos_server_Dump.bak' WITH FILE = 1, MOVE N'ActivePos_server_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActivePos_server.mdf', MOVE N'ActivePos_server_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActivePos_server_1.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [ActivePos_server] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [ActivePos_write] FROM DISK = N'D:\backups\ama705\ActivePos_write_Dump.bak' WITH FILE = 1, MOVE N'ActivePos_write_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActivePos_write.mdf', MOVE N'ActivePos_write_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActivePos_write_1.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [ActivePos_write] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [ActiveSystemClient] FROM DISK = N'D:\backups\ama705\ActiveSystemClient_Dump.bak' WITH FILE = 1, MOVE N'ActiveSystemClient_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActiveSystemClient.mdf', MOVE N'ActiveSystemClient_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActiveSystemClient_1.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [ActiveSystemClient] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [ActiveSystemServer] FROM DISK = N'D:\backups\ama705\ActiveSystemServer_Dump.bak' WITH FILE = 1, MOVE N'ActiveSystemServer_Data' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActiveSystemServer.mdf', MOVE N'ActiveSystemServer_Log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\ActiveSystemServer_1.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [ActiveSystemServer] SET RECOVERY SIMPLE +GO + +RESTORE DATABASE [HCITools] FROM DISK = N'D:\backups\ama705\HCITools_Dump.bak' WITH FILE = 1, MOVE N'HCI_tools' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\HCITools.mdf', MOVE N'HCI_tools_log' TO N'D:\sql\MSSQL15.MSSQLSERVER\MSSQL\DATA\HCITools_1.ldf', NOUNLOAD, REPLACE, STATS = 5 +GO +ALTER DATABASE [HCITools] SET RECOVERY SIMPLE +GO + diff --git a/OCTPDBA-380 - data masker/temp idx.sql b/OCTPDBA-380 - data masker/temp idx.sql new file mode 100644 index 0000000..94c8ae0 --- /dev/null +++ b/OCTPDBA-380 - data masker/temp idx.sql @@ -0,0 +1,14 @@ +/* +Missing Index Details from check before phcy.sql - (local).Arizona (CENTRALINFRA\ua208700 (66)) +The Query Processor estimates that implementing the following index could improve the query cost by 10.9728%. +*/ + + +USE [Arizona] +GO +IF INDEXPROPERTY(OBJECT_ID('address'), 'ncix_address_COL_AD_sex' , 'IndexID' ) IS NOT NULL BEGIN; + CREATE NONCLUSTERED INDEX ncix_address_COL_AD_sex + ON [dbo].[Address] ([AD_sex]) + INCLUDE ([Address_ID],[AD_name],[AD_first_name],[AD_middle_name],[AD_last_name],[AD_address_1],[AD_address_2],[AD_address_3]) +END; + diff --git a/OCTPDBA-414 - proc to align indexes/.vs/COTPDBA-414 - proc to align indexes/v15/.ssms_suo b/OCTPDBA-414 - proc to align indexes/.vs/COTPDBA-414 - proc to align indexes/v15/.ssms_suo new file mode 100644 index 0000000..763f741 Binary files /dev/null and b/OCTPDBA-414 - proc to align indexes/.vs/COTPDBA-414 - proc to align indexes/v15/.ssms_suo differ diff --git a/OCTPDBA-414 - proc to align indexes/.vs/OCTPDBA-414 - proc to align indexes/v15/.ssms_suo b/OCTPDBA-414 - proc to align indexes/.vs/OCTPDBA-414 - proc to align indexes/v15/.ssms_suo new file mode 100644 index 0000000..bc3af92 Binary files /dev/null and b/OCTPDBA-414 - proc to align indexes/.vs/OCTPDBA-414 - proc to align indexes/v15/.ssms_suo differ diff --git a/OCTPDBA-414 - proc to align indexes/OCTPDBA-414 - proc to align indexes.ssmssln b/OCTPDBA-414 - proc to align indexes/OCTPDBA-414 - proc to align indexes.ssmssln new file mode 100644 index 0000000..f51f7f6 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/OCTPDBA-414 - proc to align indexes.ssmssln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# SQL Server Management Studio Solution File, Format Version 18.00 +VisualStudioVersion = 15.0.28307.421 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "OCTPDBA-414 - proc to align indexes", "OCTPDBA-414 - proc to align indexes.ssmssqlproj", "{7E9B5A7A-BC32-4B75-8C24-E4D76990E6C4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Default|Default = Default|Default + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7E9B5A7A-BC32-4B75-8C24-E4D76990E6C4}.Default|Default.ActiveCfg = Default + {CDCDFBE0-AA1A-4B35-BD71-6CA1EEB6DCCB}.Default|Default.ActiveCfg = Default + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {55F426D9-CD01-43F0-8B52-89D42AEDECF8} + EndGlobalSection +EndGlobal diff --git a/OCTPDBA-414 - proc to align indexes/OCTPDBA-414 - proc to align indexes.ssmssqlproj b/OCTPDBA-414 - proc to align indexes/OCTPDBA-414 - proc to align indexes.ssmssqlproj new file mode 100644 index 0000000..c3cb7d7 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/OCTPDBA-414 - proc to align indexes.ssmssqlproj @@ -0,0 +1,46 @@ + + + + + + + 2023-02-06T13:35:17.913386+01:00 + SQL + (local) + + Windows Authentication + master + 30 + 0 + NotSpecified + Microsoft SQL Server Management Studio - Query + + + + + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + maintain entry indexes.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + proc.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + table.sql + + + + + + + + \ No newline at end of file diff --git a/OCTPDBA-414 - proc to align indexes/generate inserts.sql b/OCTPDBA-414 - proc to align indexes/generate inserts.sql new file mode 100644 index 0000000..42350b7 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/generate inserts.sql @@ -0,0 +1,170 @@ +USE Arizona; +GO + +DELETE FROM upd.IA_IndexesAlignementActions +WHERE IA_schema_name = 'dbo.Criteria'; + +BEGIN TRANSACTION; +WITH ColInfo +AS (SELECT TblName = o.name, + SchemaTbl = s.name + '.' + o.name, + IndexName = i.name, + s.name AS schemaName, + IsPrimaryKey = i.is_primary_key, + IsUniqueConstraint = i.is_unique_constraint, + IsUnique = i.is_unique, + CASE + WHEN i.type = 1 THEN + 1 + ELSE + 0 + END AS is_clustered, + ColName = c.name, + IsComputedCol = c.is_computed, + IsIncludedCol = ic.is_included_column, + ic.key_ordinal, + FilterDefinition = i.filter_definition, + i.object_id, + i.ignore_dup_key, + i.fill_factor, + i.is_padded + FROM sys.objects o + JOIN sys.schemas s + ON o.schema_id = s.schema_id + JOIN sys.columns c + ON o.object_id = c.object_id + JOIN sys.indexes i + ON c.object_id = i.object_id + JOIN sys.index_columns ic + ON i.index_id = ic.index_id + AND o.object_id = ic.object_id + AND c.column_id = ic.column_id + WHERE o.name = 'criteria' + AND s.name = 'dbo') +SELECT DISTINCT + ' +INSERT INTO arizona.upd.IA_IndexesAlignementActions +( + IA_executionDate, + IA_schema_name, + IA_table_name, + IA_columns_name, + IA_is_clustered, + IA_is_unique, + IA_included_columns, + IA_is_to_be_deleted, + IA_is_to_be_recreated, + IA_expected_index_name, + IA_foundIndexName, + IA_wasIndexFound, + IA_wasCreated, + IA_wasRenamed, + IA_wasDeleted, + IA_wasRecreated, + IA_includedColumnsMatch, + IA_actualColumns, + IA_actualIncludedColumns, + IA_statusMsg, + IA_index_options +) +SELECT + NULL as IA_executionDate, + ''' + x.schemaName + ''' as IA_schema_name, + ''' + x.TblName + ''' as IA_table_name, + ''' + c.IndexColumns + ''' as IA_columns_name, + 0 as IA_is_clustered, + ' + CASE + WHEN x.IsUnique = 0 THEN + '0' + ELSE + '1' + END + ' as IA_is_unique, + ' + CASE + WHEN ci.IncludedColumns IS NOT NULL THEN + '''' + ci.IncludedColumns + '''' + ELSE + 'NULL' + END + ' as IA_included_columns, + 0 as IA_is_to_be_deleted, + 0 as IA_is_to_be_recreated, + ''' + x.IndexName + + ''' as IA_expected_index_name, + NULL as IA_foundIndexName, + 0 as IA_wasIndexFound, + 0 as IA_wasCreated, + 0 as IA_wasRenamed, + 0 as IA_wasDeleted, + 0 as IA_wasRecreated, + NULL as IA_includedColumnsMatch, + NULL as IA_actualColumns, + NULL as IA_actualIncludedColumns, + NULL as IA_statusMsg, + ''' + CASE + WHEN INDEXPROPERTY(x.object_id, x.IndexName, 'IsStatistics') = 1 THEN + 'STATISTICS_NORECOMPUTE = ON, ' + ELSE + 'STATISTICS_NORECOMPUTE = OFF, ' + END + CASE + WHEN x.ignore_dup_key = 1 THEN + 'IGNORE_DUP_KEY = ON, ' + ELSE + 'IGNORE_DUP_KEY = OFF, ' + END + CASE + WHEN x.is_padded = 1 THEN + 'PAD_INDEX = ON,' + ELSE + '' + END + 'SORT_IN_TEMPDB = OFF, FILLFACTOR =' + CAST(x.fill_factor AS VARCHAR(3)) + + ''' as IA_index_options +WHERE NOT EXISTS( + SELECT 1 + FROM arizona.upd.IA_IndexesAlignementActions s + WHERE s.IA_executionDate IS NULL + AND s.IA_schema_name = ''' + x.schemaName + ''' + AND s.IA_table_name = ''' + x.TblName + ''' + AND s.IA_columns_name = ''' + c.IndexColumns + ''' + ' + CASE + WHEN ci.IncludedColumns IS NOT NULL THEN + 'AND s.IA_included_columns = ''' + ci.IncludedColumns + ''' ' + ELSE + '' + END + ' +) +' AS cmd, + x.IndexName, + c.IndexColumns, + ci.IncludedColumns +FROM ColInfo x + CROSS APPLY +( + SELECT IndexColumns = STUFF(sq.strXML, 1, 2, '') + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.schemaName = x2.schemaName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 0 + ORDER BY x2.key_ordinal + FOR XML PATH('') + ) sq(strXML) +) c + OUTER APPLY +( + SELECT IncludedColumns = STUFF(sq.strXML, 1, 2, '') + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.schemaName = x2.schemaName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 1 + ORDER BY x2.key_ordinal + FOR XML PATH('') + ) sq(strXML) +) ci; + + +ROLLBACK TRANSACTION; \ No newline at end of file diff --git a/OCTPDBA-414 - proc to align indexes/maintain entry indexes.sql b/OCTPDBA-414 - proc to align indexes/maintain entry indexes.sql new file mode 100644 index 0000000..b152b45 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/maintain entry indexes.sql @@ -0,0 +1,686 @@ +/*============================================================================= + +Maintain and align indexes on Arizona.dbo.entry + +TODO: + allow to skip INDEX DROP for unlisted indexes + +Parameters +---------------------- +Populate the var table @indexesToMaintains to drop / create and rename indexes to be aligned. +You need to specify those fields: + * schemaName, tableName: the schema and table name for which you want to maintain the indexes. + This script was written with working against several tables in mind, but is not (yet) tested to handle this case. + * columnsName: What columns are part of the index key, in the correct order + As we have divergent indexes names, we must use the index columns as the key to find the indexes. + * includedColumns_inp: if the index have included columns, list them here. + When an index is found, the included columns list it also compared to determine if the index is aligned. + * expectedIndexName_inp: The name the index should have. It will be used when creating missing indexes or renaming existing indexes + The index name is optionnal if we specify in the table that the index must be dropped. + * isToBeDeleted_inp: if true, indicate that the index should be dropped. + * isToBeRecreated_inp: if true, will drop and re-create the index even if the structure matches. + * isClustered_inp: if true and the index must be (re-)created, it will be created as a clustered index + * isUnique_inp: if true and the index must be (re-)created, it will be created as a unique index + +Note that: + * Matching is always made from the columns of the index, never on the name of the index. + The reason is that we might have difference in the name of the index between several servers. + * If an index exists with the name A, but your list contains a similar index with the name B, index A will be renamed to B with sp_rename + * For each table(s) referenced in @indexesToMaintains, if an index exists that is not listed in the variable table it will be considered to be + dropped if @DoDropExistingIndexesNotReferenced is set to 1. + * If you list a specific existing index to be dropped in @indexesToMaintains then the following fields are optionnal: + expected index name + flag isClustered + flag isUnique + +Context +---------------------- +In any databases + +Creation : 09.11.2022 / TSC +Modifications: + +=============================================================================*/ +USE [Arizona]; +GO + +BEGIN TRANSACTION; +SET XACT_ABORT ON; +SET NOCOUNT ON; + +DECLARE @query VARCHAR(MAX); /* for dynamic sql */ +DECLARE @schemaName VARCHAR(100); /* used in cursor */ +DECLARE @tableName VARCHAR(100); /* used in cursor */ + +/* +If set to true, the script will not apply the change. +Generated statements are always printed on the message tab. +*/ +DECLARE @DoOnlyOutputStatement BIT = 0; + +/* +If the script find local indexes that are not listed in the variable table, should it drop them or not ? +An index whose definition is not aligned with the temp table or flagged "to be rebuilt" will always be dropped before creation. +*/ +DECLARE @DoDropExistingIndexesNotReferenced BIT = 0; + +DECLARE @indexesToMaintains TABLE( + [Id] INT IDENTITY NOT NULL + ,[SchemaName] VARCHAR(100) NOT NULL /* the schema the table is part of */ + ,[TableName] VARCHAR(100) NOT NULL /* On which table is the index, whithout the schema */ + ,columnsName_inp VARCHAR(MAX) NOT NULL /* list all the columns of the index, in the correct orders */ + ,isClustered_inp BIT NOT NULL DEFAULT 0 /* Is the indexe a clustered index ? */ + ,isUnique_inp BIT NOT NULL DEFAULT 0 /* Is the index unique ? */ + ,includedColumns_inp VARCHAR(MAX)NULL /* list all the included columns the index should have. only relevant for idx not to be dropped */ + ,isToBeDeleted_inp BIT NOT NULL DEFAULT 0 /* must the script drop this index ? */ + ,isToBeRecreated_inp BIT NOT NULL DEFAULT 0 /* must the script recreate this index ? + If an existing index differs from the definition, it will be dropped and the correct one created. + Use this only to force the re-creation even if the structure is identical */ + ,expectedIndexName_inp VARCHAR(MAX) NULL /* the name the index should have, used to determine if a rename of the existing index should be done */ + ,indexName VARCHAR(MAX) NULL /* computed by the script. The index name on this system, as indexes name can be different accross systems*/ + ,isIndexFound_comp BIT NOT NULL DEFAULT 0 /* computed by the script. set to 1 if the index is present on the server */ + ,isToBeCreated_comp BIT NULL DEFAULT 0 /* computed by the script. does this index will be created on the server ? */ + ,isToBeRenamed_comp BIT NULL DEFAULT 0 /* computed by the script. does this index will be renamed ? */ + ,isToBeDeleted_comp BIT NULL DEFAULT 0 /* computed by the script. does this index will be deleted ? */ + ,isToBeRecreated_comp BIT NULL DEFAULT 0 /* computed by the script. does this index will be re-created ? */ + ,internal_includedColumnsMatch BIT NULL /* computed ba the script. Are the expected and actual included columns identical ? */ + ,internal_actualColumns VARCHAR(MAX) NULL /* the actual columns in the existing index */ + ,internal_actualIncludedColumns VARCHAR(MAX) NULL /* the actual columns in the INCLUDE part of the index */ + ,internal_statusMsg VARCHAR(MAX) /* Message, used for debug */ +); + +/* Declare the expected structure of the indexes */ +INSERT INTO @indexesToMaintains ([columnsName_inp], + [isToBeDeleted_inp], + [isToBeRecreated_inp], + [expectedIndexName_inp], + [includedColumns_inp], + [schemaName], + [tableName], + [isClustered_inp], + [isUnique_inp]) +/* indexe(s) we do want */ +VALUES('Entry_id',0,0,'PK_Entry_id', NULL,'dbo','entry',0,0) +,('ET_batch_run',0,0,'NCIX_Entry_COL_ET_batch_run',NULL,'dbo','entry',0,0) +,('ET_accounting_period',0,0,'NCIX_Entry_COL_ET_accounting_period','Entry_ID','dbo','entry',0,0) +,('ET_document_header',0,0,'NCIX_Entry_COL_ET_document_header','ET_debit_currency_amount, ET_credit_currency_amount','dbo','entry',0,0) +,('ET_account, ET_document_header',0,0,'NCIX_Entry_COL_ET_account','Entry_ID','dbo','entry',0,0) +,('ET_reconciliation_status, ET_account, ET_document_header',0,0,'NCIX_Entry_COL_ET_reconciliation_status','ET_debit_base_amount, ET_credit_base_amount, ET_reconciliation_base_amount','dbo','entry',0,0) +,('ET_predefined_entry',0,0,'NCIX_Entry_COL_ET_predefined_entry',NULL,'dbo','entry',0,0) +,('ET_entry_address',0,0,'NCIX_Entry_COL_ET_entry_address',NULL,'dbo','entry',0,0) +,('ET_currency',0,0,'NCIX_Entry_COL_ET_currency',NULL,'dbo','entry',0,0) + +/* indexe(s) used in central, even if not in pharmacies*/ +,('ET_entry_type',0,0,'NCIX_Entry_COL_ET_entry_type',NULL,'dbo','entry',0,0) + +/* indexe(s) we really want to drop*/ +,('ET_master_ID',1,0,'NCIX_Entry_COL_ET_master_ID',NULL,'dbo','entry',0,0) +,('ET_bmc_user_profile',1,0,'NCIX_Entry_COL_ET_bmc_user_profile',NULL,'dbo','entry',0,0) +,('ET_sales_tax_code',1,0,'NCIX_Entry_COL_ET_sales_tax_code',NULL,'dbo','entry',0,0) +,('ET_APS_TS', 1, 0, 'NCIX_Entry_COL_ET_APS_TS',NULL,'dbo','entry',0,0) + +; + +/* check for duplicate */ +DECLARE @msg VARCHAR(MAX) = ''; +SELECT @msg = @msg + 'Duplicate index (on expected index name) found in indexes definition. Table ['+[itm].[SchemaName]+'].['+[itm].[TableName]+'], expected index name ['+[itm].[expectedIndexName_inp]+']'+CHAR(13)+CHAR(10) +FROM @indexesToMaintains [itm] + JOIN ( + SELECT + [ii].[expectedIndexName_inp] AS [key] + FROM @indexesToMaintains [ii] + GROUP BY [ii].[expectedIndexName_inp] + HAVING COUNT(1)>1 + ) d ON d.[key] = [itm].[expectedIndexName_inp] +GROUP BY [itm].[SchemaName], [itm].[TableName], [itm].[expectedIndexName_inp] +; + +/* stop here if we have an issue in the variable table */ +IF @msg <> '' +BEGIN + RAISERROR(@msg, 16, 4); + IF @@TRANCOUNT>0 + BEGIN + ROLLBACK TRANSACTION; + END + RETURN +END + +SET @msg = ''; +SELECT @msg = @msg + 'Duplicate index (on column definition) found in indexes definition. Table ['+[itm].[SchemaName]+'].['+[itm].[TableName]+'], columns in index: '+[itm].[columnsName_inp] + + CASE + WHEN [itm].[includedColumns_inp] IS NOT NULL THEN ', included colum(s): '+[itm].[includedColumns_inp] + ELSE '' + END + +CHAR(13)+CHAR(10) +FROM @indexesToMaintains [itm] + JOIN ( + SELECT + [ii].[columnsName_inp]+'_'+ISNULL([ii].[includedColumns_inp],'') AS [key] + FROM @indexesToMaintains [ii] + GROUP BY [ii].[columnsName_inp]+'_'+ISNULL([ii].[includedColumns_inp],'') + HAVING COUNT(1)>1 + ) d ON d.[key] = [itm].[columnsName_inp]+'_'+ISNULL([itm].[includedColumns_inp],'') +GROUP BY [itm].[SchemaName], [itm].[TableName], [itm].[columnsName_inp], [itm].[includedColumns_inp] +; + +/* stop here if we have an issue in the variable table */ +IF @msg <> '' +BEGIN + RAISERROR(@msg, 16, 4); + IF @@TRANCOUNT>0 + BEGIN + ROLLBACK TRANSACTION; + END + RETURN +END + +/* fetch the indexes name on the current instance */ +DECLARE curIdxName CURSOR FAST_FORWARD READ_ONLY FOR + SELECT DISTINCT [itm].[schemaName], [itm].[tableName] + FROM @indexesToMaintains [itm]; + +OPEN curIdxName; + +FETCH NEXT FROM curIdxName INTO @schemaName, @tableName; + +WHILE @@FETCH_STATUS = 0 +BEGIN + + ;WITH ColInfo + AS ( + SELECT + o.[Name] AS TblName + ,s.[Name] + '.' + o.[Name] AS SchemaTbl + ,i.[Name] AS IndexName + ,i.[is_primary_key] AS IsPrimaryKey + ,i.[is_unique_constraint] AS IsUniqueConstraint + ,i.[is_unique] AS IsUnique + ,c.[Name] AS ColName + ,c.[is_computed] AS IsComputedCol + ,ic.[is_included_column] AS IsIncludedCol + ,ic.[key_ordinal] + ,i.[filter_definition] AS FilterDefinition + FROM [sys].[objects] o + INNER JOIN [sys].[schemas] s + ON o.SCHEMA_ID = s.SCHEMA_ID + INNER JOIN [sys].[COLUMNS] c + ON o.OBJECT_ID = c.OBJECT_ID + INNER JOIN [sys].[indexes] i + ON c.OBJECT_ID = i.OBJECT_ID + INNER JOIN [sys].[index_columns] ic + ON i.[index_id] = ic.[index_id] + AND o.OBJECT_ID = ic.OBJECT_ID + AND c.[column_id] = ic.[column_id] + ) + + /* map the list to the actual indexes */ + UPDATE [itm] SET [itm].[indexName] = i.[name] + ,[itm].[internal_includedColumnsMatch] = CASE + WHEN ISNULL([itm].[includedColumns_inp],'') = ISNULL([idx_cols].[includedColumns],'') THEN 1 + ELSE 0 + END + ,[itm].[internal_actualIncludedColumns] = [idx_cols].[includedColumns] + ,[itm].[internal_actualColumns] = [idx_cols].[IndexColumns] + ,[itm].[isIndexFound_comp] = 1 + ,[itm].[isToBeCreated_comp] = 0 + FROM [sys].[indexes] AS i WITH (NOLOCK) + INNER JOIN [sys].[objects] o WITH (NOLOCK) + ON i.OBJECT_ID = o.OBJECT_ID + OUTER APPLY ( + SELECT DISTINCT + x.TblName + ,x.IndexName + ,x.IsPrimaryKey + ,x.IsUniqueConstraint + ,x.IsUnique + ,c.IndexColumns + ,ci.includedColumns + ,cc.ComputedColumns + ,x.FilterDefinition + FROM ColInfo x + CROSS APPLY ( + SELECT STUFF(sq.strXML, 1, 2, '') AS IndexColumns + FROM ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 0 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) c + OUTER APPLY ( + SELECT STUFF(sq.strXML, 1, 2, '') AS includedColumns + FROM ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 1 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) ci + OUTER APPLY ( + SELECT STUFF(sq.strXML, 1, 2, '') AS ComputedColumns + FROM ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsComputedCol = 1 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) cc + WHERE x.TblName = o.[Name] + AND x.IndexName = i.[Name] + ) idx_cols + LEFT OUTER JOIN ( + SELECT + SCHEMA_NAME(tab.SCHEMA_ID) + '.' + tab.[Name] AS [table] + ,col.[column_id] + ,col.[Name] AS [COLUMN_NAME] + ,CASE + WHEN fk.OBJECT_ID IS NOT NULL THEN '>-' + ELSE NULL + END AS rel + ,SCHEMA_NAME(pk_tab.SCHEMA_ID) + '.' + pk_tab.[Name] AS primary_table + ,pk_col.[Name] AS pk_column_name + ,fk_cols.[constraint_column_id] AS NO + ,fk.[Name] AS fk_constraint_name + ,tab.[Name] AS tbl_name + FROM [sys].[TABLES] tab + INNER JOIN [sys].[COLUMNS] col + ON col.OBJECT_ID = tab.OBJECT_ID + LEFT OUTER JOIN [sys].[foreign_key_columns] fk_cols + ON fk_cols.[parent_object_id] = tab.OBJECT_ID + AND fk_cols.[parent_column_id] = col.[column_id] + LEFT OUTER JOIN [sys].[foreign_keys] fk + ON fk.OBJECT_ID = fk_cols.[constraint_object_id] + LEFT OUTER JOIN [sys].[TABLES] pk_tab + ON pk_tab.OBJECT_ID = fk_cols.[referenced_object_id] + LEFT OUTER JOIN [sys].[COLUMNS] pk_col + ON pk_col.[column_id] = fk_cols.[referenced_column_id] + AND pk_col.OBJECT_ID = fk_cols.[referenced_object_id] + WHERE fk.OBJECT_ID IS NOT NULL + ) fk + ON fk.tbl_name = o.[Name] + AND idx_cols.IndexColumns LIKE '%' + fk.[COLUMN_NAME] + '%' + INNER JOIN @indexesToMaintains [itm] + ON itm.[schemaName] = @schemaName + AND itm.[tableName] = @tableName + AND itm.[columnsName_inp] COLLATE Latin1_General_CI_AI = [idx_cols].[IndexColumns] COLLATE Latin1_General_CI_AI + AND ISNULL([itm].[includedColumns_inp],'') COLLATE Latin1_General_CI_AI = ISNULL([idx_cols].[includedColumns],'') COLLATE Latin1_General_CI_AI + WHERE o.TYPE = 'U' -- user table + --AND i.[index_id] = s.[index_id] + --AND s.[database_id] = DB_ID() + AND o.[Name] = @tableName + AND SCHEMA_NAME(o.SCHEMA_ID) = @schemaName + OPTION (RECOMPILE); + + + /* Add the indexes not in the list but present on the server to the list */ + ;WITH ColInfo + AS ( + SELECT + o.[Name] AS TblName + ,SCHEMA_NAME(o.[schema_id]) AS SchemaName + ,s.[Name] + '.' + o.[Name] AS SchemaTbl + ,i.[Name] AS IndexName + ,i.[is_primary_key] AS IsPrimaryKey + ,i.[is_unique_constraint] AS IsUniqueConstraint + ,i.[is_unique] AS IsUnique + ,c.[Name] AS ColName + ,c.[is_computed] AS IsComputedCol + ,ic.[is_included_column] AS IsIncludedCol + ,ic.[key_ordinal] + ,i.[filter_definition] AS FilterDefinition + FROM [sys].[objects] o + INNER JOIN [sys].[schemas] s + ON o.SCHEMA_ID = s.SCHEMA_ID + INNER JOIN [sys].[COLUMNS] c + ON o.OBJECT_ID = c.OBJECT_ID + INNER JOIN [sys].[indexes] i + ON c.OBJECT_ID = i.OBJECT_ID + INNER JOIN [sys].[index_columns] ic + ON i.[index_id] = ic.[index_id] + AND o.OBJECT_ID = ic.OBJECT_ID + AND c.[column_id] = ic.[column_id] + ) + + INSERT INTO @indexesToMaintains ( + [schemaName] + ,[tableName] + ,[columnsName_inp] + ,[indexName] + ,[isToBeDeleted_inp] + ,[isToBeDeleted_comp] + ,[isToBeRecreated_inp] + ,[internal_statusMsg] + ,[internal_actualIncludedColumns] + ,[internal_actualColumns] + ,[isIndexFound_comp] + ,[isToBeCreated_comp] + ,[expectedIndexName_inp] + ) + SELECT DISTINCT + @schemaName AS [SchemaName] + ,@tableName AS [TableName] + ,c.[IndexColumns] AS [columnsName] + ,x.[IndexName] AS indexName + ,0 AS [isToBeDeleted_inp] + ,CASE + WHEN EXISTS( + SELECT 1 + FROM @indexesToMaintains [itm] + WHERE itm.[expectedIndexName_inp] = x.[IndexName] + OR ISNULL(itm.[columnsName_inp],'') <> ISNULL(itm.[internal_actualColumns],'') + OR ISNULL(itm.[includedColumns_inp],'') <> ISNULL(itm.[internal_actualIncludedColumns],'') + ) THEN 1 + WHEN @DoDropExistingIndexesNotReferenced = 1 THEN 1 + ELSE 0 + END AS [isToBeDeleted_comp] + ,0 AS [isToBeRecreated_inp] + ,CASE + WHEN EXISTS( + SELECT 1 + FROM @indexesToMaintains [itm] + WHERE itm.[expectedIndexName_inp] = x.[IndexName] + OR ISNULL(itm.[columnsName_inp],'') <> ISNULL(itm.[internal_actualColumns],'') + OR ISNULL(itm.[includedColumns_inp],'') <> ISNULL(itm.[internal_actualIncludedColumns],'') + ) THEN 'Index present locally not as expected, drop before creation' + WHEN @DoDropExistingIndexesNotReferenced = 1 THEN 'Index present locally only' + ELSE NULL + END AS [internal_statusMsg] + ,ci.[includedColumns] AS [internal_actualIncludedColumns] + ,c.[IndexColumns] AS [internal_actualColumns] + ,1 AS [isIndexFound_comp] + ,0 AS [isToBeCreated_comp] + ,x.[IndexName] AS [expectedIndexName_inp] + FROM ColInfo x + CROSS APPLY(SELECT IndexColumns = STUFF(sq.strXML, 1, 2, '') + FROM ( SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName AND x.IndexName = x2.IndexName AND x2.IsIncludedCol = 0 + ORDER BY x2.key_ordinal + FOR XML PATH('') + ) sq (strXML) + ) c + Outer APPLY(SELECT IncludedColumns = STUFF(sq.strXML, 1, 2, '') + FROM ( SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName AND x.IndexName = x2.IndexName AND x2.IsIncludedCol = 1 + ORDER BY x2.key_ordinal + FOR XML PATH('') + ) sq (strXML) + ) ci + Outer APPLY(SELECT ComputedColumns = STUFF(sq.strXML, 1, 2, '') + FROM ( SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName AND x.IndexName = x2.IndexName AND x2.IsComputedCol = 1 + ORDER BY x2.key_ordinal + FOR XML PATH('') + ) sq (strXML) + ) cc + LEFT OUTER JOIN ( + SELECT + SCHEMA_NAME(tab.SCHEMA_ID) + '.' + tab.[Name] AS [table] + ,col.[column_id] + ,col.[Name] AS [COLUMN_NAME] + ,CASE + WHEN fk.OBJECT_ID IS NOT NULL THEN '>-' + ELSE NULL + END AS rel + ,SCHEMA_NAME(pk_tab.SCHEMA_ID) + '.' + pk_tab.[Name] AS primary_table + ,pk_col.[Name] AS pk_column_name + ,fk_cols.[constraint_column_id] AS NO + ,fk.[Name] AS fk_constraint_name + ,tab.[Name] AS tbl_name + FROM [sys].[TABLES] tab + INNER JOIN [sys].[COLUMNS] col + ON col.OBJECT_ID = tab.OBJECT_ID + LEFT OUTER JOIN [sys].[foreign_key_columns] fk_cols + ON fk_cols.[parent_object_id] = tab.OBJECT_ID + AND fk_cols.[parent_column_id] = col.[column_id] + LEFT OUTER JOIN [sys].[foreign_keys] fk + ON fk.OBJECT_ID = fk_cols.[constraint_object_id] + LEFT OUTER JOIN [sys].[TABLES] pk_tab + ON pk_tab.OBJECT_ID = fk_cols.[referenced_object_id] + LEFT OUTER JOIN [sys].[COLUMNS] pk_col + ON pk_col.[column_id] = fk_cols.[referenced_column_id] + AND pk_col.OBJECT_ID = fk_cols.[referenced_object_id] + WHERE fk.OBJECT_ID IS NOT NULL + ) fk + ON fk.tbl_name = x.[TblName] + AND [c].[IndexColumns] LIKE '%' + fk.[COLUMN_NAME] + '%' + WHERE x.[SchemaName] =@schemaName + AND x.[TblName] =@tableName + AND NOT EXISTS( + SELECT 1 + FROM @indexesToMaintains [itm2] + WHERE 1=1 + AND ISNULL(itm2.[internal_actualColumns],'') = ISNULL(c.[IndexColumns],'') + AND ISNULL(itm2.[internal_actualIncludedColumns],'') = ISNULL(ci.[includedColumns],'') + ) + OPTION (RECOMPILE); + + + FETCH NEXT FROM curIdxName INTO @schemaName, @tableName; +END + +CLOSE curIdxName; +DEALLOCATE curIdxName; + + +/* Adjust the "_comp" flags to create a matrix of actions */ +/* to be created */ +UPDATE [itm] + SET + [itm].[isToBeCreated_comp] = CASE + WHEN [itm].[isToBeDeleted_inp] = 0 THEN 1 + ELSE 0 + END + FROM @indexesToMaintains [itm] + WHERE [itm].[indexName] IS NULL /* index was not found on the server */ + AND [itm].[expectedIndexName_inp] IS NOT NULL /* we did gave an index name, ie: we want to create it if missing */ +; + +/* to be renamed */ +UPDATE [itm] + SET + [itm].[isToBeRenamed_comp] = 1 + FROM @indexesToMaintains [itm] + WHERE [itm].[indexName] IS NOT NULL /* index was not found on the server */ + AND [itm].[expectedIndexName_inp] IS NOT NULL /* we did gave an index name, ie: we expect that index to be present */ + AND [indexName] <> [itm].[expectedIndexName_inp] + AND [isToBeDeleted_inp] = 0 + AND [isToBeDeleted_comp] = 0 +; + +/* to be re-created */ +UPDATE [itm] + SET + [itm].[isToBeRecreated_comp] = 1 + FROM @indexesToMaintains [itm] + WHERE [isToBeRecreated_inp] = 1 +; + +/* to be deleted, because specified in table */ +UPDATE itm + SET + [itm].[isToBeDeleted_comp] = CASE + WHEN [itm].[isIndexFound_comp] = 0 THEN 0 + ELSE 1 + END + ,[itm].[isToBeRecreated_comp] = 0 /* deletion override re-create */ + ,[itm].[isToBeRenamed_comp] = 0 /* deletion override rename */ +FROM @indexesToMaintains [itm] +WHERE [itm].[isToBeDeleted_inp] = 1 +; + +/* to be deleted, because different to specs. link on index name */ +UPDATE [exp] + SET + [exp].[isToBeCreated_comp] = 1 /* flag the expected index "to be created" */ +FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[indexName] = [exp].[expectedIndexName_inp] +WHERE [exp].[isToBeDeleted_comp] = 0 +AND [exp].[isToBeCreated_comp] = 0 +AND [exp].[isToBeRenamed_comp] = 0 +AND [exp].[isToBeRecreated_inp] = 0 +AND ( + [exp].[columnsName_inp] != [act].[internal_actualColumns] + OR [exp].[includedColumns_inp] != [act].[internal_actualIncludedColumns] +) +; + +UPDATE [act] + SET + [act].[isToBeDeleted_comp] = 1 /* flag the actual index "to be deleted" */ +FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[indexName] = [exp].[expectedIndexName_inp] +WHERE ( + [exp].[columnsName_inp] != [act].[internal_actualColumns] + OR [exp].[includedColumns_inp] != [act].[internal_actualIncludedColumns] +) +; + +/* to be deleted, because different to specs. link on index columns */ +UPDATE [exp] + SET + [exp].[isToBeCreated_comp] = 1 /* flag the expected index "to be created" */ +FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[internal_actualColumns] = [exp].[columnsName_inp] +WHERE ( + [exp].[columnsName_inp] != [act].[internal_actualColumns] + OR [exp].[includedColumns_inp] != [act].[internal_actualIncludedColumns] +) +; +UPDATE [act] + SET + [act].[isToBeDeleted_comp] = 1 /* flag the actual index "to be deleted" */ +FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[internal_actualColumns] = [exp].[columnsName_inp] +WHERE ( + [exp].[columnsName_inp] != [act].[internal_actualColumns] + OR [exp].[includedColumns_inp] != [act].[internal_actualIncludedColumns] +) +; + +/* if we have both "rename" and "delete" actions, remove the "rename" action */ +UPDATE @indexesToMaintains +SET [isToBeRenamed_comp] = 0 +WHERE [isToBeRenamed_comp] = 1 +AND [isToBeDeleted_comp] = 1 +; + +/* ensure that we don't have clash between indexes to create and indexes to rename */ +UPDATE ir + SET [ir].[isToBeRenamed_comp] = 0 /* do not rename this index */ + , [ir].[isToBeDeleted_inp] = 1 /* drop this index instead, as we have one with the correct structure about to be created */ +FROM @indexesToMaintains [ic] /* to create */ + JOIN @indexesToMaintains [ir] /* to rename */ + ON ic.[expectedIndexName_inp] = ir.[expectedIndexName_inp] +WHERE [ic].[isToBeCreated_comp] = 1 +AND [ir].[isToBeRenamed_comp] = 1 + +/* Show the action matrix */ +SELECT [itm].[isIndexFound_comp] + ,[itm].[isToBeCreated_comp] + ,[itm].[isToBeRenamed_comp] + ,[itm].[isToBeDeleted_comp] + ,[itm].[isToBeRecreated_comp] + ,[itm].[internal_statusMsg] + ,'....' + ,[itm].[isToBeDeleted_inp] + ,[itm].[isToBeRecreated_inp] + ,[itm].[indexName] + ,[itm].[expectedIndexName_inp] + ,[itm].[columnsName_inp] + ,[itm].[internal_actualColumns] + ,[itm].[includedColumns_inp] + ,[itm].[internal_actualIncludedColumns] +FROM @indexesToMaintains [itm] +ORDER BY [itm].[isIndexFound_comp],[itm].[isToBeDeleted_inp], [itm].[columnsName_inp]; + + +/* Drop the indexe(s) that are to be deleted or recreated */ +SET @query=''; +SELECT @query = @query + 'DROP INDEX '+[itm].[indexName]+' ON dbo.entry;'+CHAR(13)+CHAR(10) +FROM @indexesToMaintains [itm] +WHERE [itm].[isToBeDeleted_comp] = 1 +OR [itm].[isToBeRecreated_comp] = 1 +; + +PRINT REPLICATE('-', 40); +PRINT '-- execute DROP INDEX'; +PRINT REPLICATE('-', 40); +PRINT @query; +PRINT REPLICATE('-', 40); +PRINT CHAR(13)+CHAR(10); + +IF @DoOnlyOutputStatement = 0 +BEGIN + EXECUTE(@query); +END + +/* rename existing indexe(s) */ +SET @query = ''; +SELECT @query = @query + 'EXEC sp_rename @objname ='''+[itm].[tableName]+'.'+[itm].[indexName]+''', @newname = '''+[itm].[expectedIndexName_inp]+''';'+CHAR(13)+CHAR(10) +FROM @indexesToMaintains [itm] +WHERE [itm].[isToBeRenamed_comp] = 1 +; + +PRINT REPLICATE('-', 40); +PRINT '-- execute sp_rename'; +PRINT REPLICATE('-', 40); +PRINT @query; +PRINT REPLICATE('-', 40); +PRINT CHAR(13)+CHAR(10); + +IF @DoOnlyOutputStatement = 0 +BEGIN + EXECUTE(@query); +END + +/* create indexe(s) */ +SET @query=''; +SELECT @query = @query + 'CREATE ' + +CASE WHEN [itm].[isClustered_inp]=1 THEN 'CLUSTERED' ELSE 'NONCLUSTERED' END + +CASE WHEN [itm].[isUnique_inp]=1 THEN ' UNIQUE' ELSE '' END + +' INDEX '+[itm].[expectedIndexName_inp] + +' ON '+[itm].[schemaName]+'.'+[itm].[tableName]+'('+[itm].[columnsName_inp]+')' + + CASE + WHEN [itm].[includedColumns_inp] IS NOT NULL THEN ' INCLUDE ('+[itm].[includedColumns_inp]+')' + ELSE '' + END + +';' + +CHAR(13)+CHAR(10) +FROM @indexesToMaintains [itm] +WHERE ( + [itm].[isToBeCreated_comp] = 1 + OR [itm].[isToBeRecreated_comp] = 1 +) +; + +PRINT REPLICATE('-', 40); +PRINT '-- execute CREATE INDEX'; +PRINT REPLICATE('-', 40); +PRINT @query; +PRINT REPLICATE('-', 40); +PRINT CHAR(13)+CHAR(10); + +IF @DoOnlyOutputStatement = 0 +BEGIN + EXECUTE(@query); +END + +--ROLLBACK TRANSACTION; +COMMIT TRANSACTION diff --git a/OCTPDBA-414 - proc to align indexes/proc.sql b/OCTPDBA-414 - proc to align indexes/proc.sql new file mode 100644 index 0000000..40eb451 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/proc.sql @@ -0,0 +1,800 @@ +USE Arizona; +GO +IF OBJECT_ID('upd.alignIndexes') IS NOT NULL + DROP PROCEDURE [upd].alignIndexes; +GO + +/*============================================================================= + +OCTPDBA-414 +This procedure is used to align indexes in a pharmacy against a template, stored in the table [arizona].[upd].[IndexesAlignementActions] + +Note that: + * Matching is always made from the columns of the index, never on the name of the index. + The reason is that we might have difference in the name of the index between several servers. + * If an index exists with the name A, but your list contains a similar index with the name B, index A will be renamed to B with sp_rename + +Parameters +---------------------- +@in_debug +Debug level. Default 0 + 0 = no debug, execute commands + 1 = print commands and output a matrix showing the found state + 2 = only print commands and output a matrix showing the found state + +@in_dropUnreferencedIndexes +Drop indexes not referenced. Default 0 + This flag govern behavior when we have a index on a table that exists in [IndexesAlignementActions], but that this specific index is not present in [IndexesAlignementActions] + 0 = Leave the unknown index in place + 1 = Drop the unknown index + +Context +---------------------- +This proc can be called at anytime to align indexes against those referenced in [arizona].[upd].[IndexesAlignementActions] + +Creation : 03.02.2023 / TSC +Modifications: + +=============================================================================*/ +CREATE PROCEDURE [upd].[alignIndexes] + @in_debug INT = 0, + @in_dropUnreferencedIndexes BIT = 0 +AS +BEGIN + SET NOCOUNT ON; + + /* variables */ + DECLARE @query VARCHAR(MAX); /* for dynamic sql */ + DECLARE @outputStatement BIT = CASE /* Do we want to have the commands printed out ? */ + WHEN @in_debug IN ( 1, 2 ) THEN + 1 + ELSE + 0 + END; + DECLARE @executeStatement BIT = CASE /* Do we want to execute the commands ? */ + WHEN @in_debug IN ( 0, 1 ) THEN + 1 + ELSE + 0 + END; + DECLARE @schemaName VARCHAR(100); /* used in cursor */ + DECLARE @tableName VARCHAR(100); /* used in cursor */ + DECLARE @indexFK INT; /* used in cursor */ + DECLARE @msg VARCHAR(MAX) = ''; + DECLARE @indexesToMaintains TABLE + ( + [IA_indexesAlignementActions] INT NULL, /* FK to table upd.IA_IndexesAlignementActions */ + [SchemaName] VARCHAR(100) NOT NULL, /* the schema the table is part of */ + [TableName] VARCHAR(100) NOT NULL, /* On which table is the index, whithout the schema */ + columnsName_inp VARCHAR(MAX) NOT NULL, /* list all the columns of the index, in the correct orders */ + IA_index_options VARCHAR(MAX) NULL, /* index options */ + isClustered_inp BIT NOT NULL + DEFAULT 0, /* Is the indexe a clustered index ? */ + isUnique_inp BIT NOT NULL + DEFAULT 0, /* Is the index unique ? */ + includedColumns_inp VARCHAR(MAX) NULL, /* list all the included columns the index should have. only relevant for idx not to be dropped */ + isToBeDeleted_inp BIT NOT NULL + DEFAULT 0, /* must the script drop this index ? */ + isToBeRecreated_inp BIT NOT NULL + DEFAULT 0, /* must the script recreate this index ? + If an existing index differs from the definition, it will be dropped and the correct one created. + Use this only to force the re-creation even if the structure is identical */ + expectedIndexName_inp VARCHAR(MAX) NULL, /* the name the index should have, used to determine if a rename of the existing index should be done */ + indexName VARCHAR(MAX) NULL, /* computed by the script. The index name on this system, as indexes name can be different accross systems*/ + isIndexFound_comp BIT NOT NULL + DEFAULT 0, /* computed by the script. set to 1 if the index is present on the server */ + isToBeCreated_comp BIT NULL + DEFAULT 0, /* computed by the script. does this index will be created on the server ? */ + isToBeRenamed_comp BIT NULL + DEFAULT 0, /* computed by the script. does this index will be renamed ? */ + isToBeDeleted_comp BIT NULL + DEFAULT 0, /* computed by the script. does this index will be deleted ? */ + isToBeRecreated_comp BIT NULL + DEFAULT 0, /* computed by the script. does this index will be re-created ? */ + includedColumnsMatch_internal BIT NULL, /* computed ba the script. Are the expected and actual included columns identical ? */ + actualColumns_internal VARCHAR(MAX) NULL, /* the actual columns in the existing index */ + actualIncludedColumns_internal VARCHAR(MAX) NULL, /* the actual columns in the INCLUDE part of the index */ + statusMsg_internal VARCHAR(MAX) NULL /* Message, used for debug */ + ); + + + /* fetch index to align from upd.IA_IndexesAlignementActions */ + INSERT INTO @indexesToMaintains + ( + [IA_indexesAlignementActions], + [SchemaName], + [TableName], + expectedIndexName_inp, + columnsName_inp, + includedColumns_inp, + isClustered_inp, + isUnique_inp, + isToBeDeleted_inp, + isToBeRecreated_inp, + IA_index_options + ) + SELECT ia.[IA_indexesAlignementActions_id], + ia.[IA_schema_name], + ia.[IA_table_name], + ia.[IA_expected_index_name], + ia.[IA_columns_name], + ia.[IA_included_columns], + ia.[IA_is_clustered], + ia.[IA_is_unique], + ia.[IA_is_to_be_deleted], + ia.[IA_is_to_be_recreated], + ia.IA_index_options + FROM [upd].[IA_IndexesAlignementActions] ia + WHERE ia.[IA_executionDate] IS NULL; + + + /* logic checks on index definition table */ + SELECT @msg + = @msg + 'Duplicate index (on expected index name) found in indexes definition. Table [' + + [itm].[IA_schema_name] + '].[' + [itm].[IA_table_name] + '], expected index name [' + + [itm].[IA_expected_index_name] + ']' + CHAR(13) + CHAR(10) + FROM [upd].[IA_IndexesAlignementActions] [itm] + JOIN + ( + SELECT [ii].[IA_expected_index_name] AS [key] + FROM [upd].[IA_IndexesAlignementActions] [ii] + GROUP BY [ii].[IA_expected_index_name] + HAVING COUNT(1) > 1 + ) d + ON d.[key] = [itm].[IA_expected_index_name] + GROUP BY [itm].[IA_schema_name], + [itm].[IA_table_name], + [itm].[IA_expected_index_name]; + + --duplicate index key + SELECT @msg + = @msg + 'Duplicate index (on column definition) found in indexes definition. Table [' + [itm].[IA_schema_name] + + '].[' + [itm].[IA_table_name] + '], columns in index: ' + [itm].[IA_columns_name] + + CASE + WHEN [itm].[IA_included_columns] IS NOT NULL THEN + ', included colum(s): ' + [itm].[IA_included_columns] + ELSE + '' + END + CHAR(13) + CHAR(10) + FROM [upd].[IA_IndexesAlignementActions] [itm] + JOIN + ( + SELECT [ii].[IA_columns_name] + '_' + ISNULL([ii].[IA_included_columns], '') AS [key] + FROM [upd].[IA_IndexesAlignementActions] [ii] + GROUP BY [ii].[IA_columns_name] + '_' + ISNULL([ii].[IA_included_columns], '') + HAVING COUNT(1) > 1 + ) d + ON d.[key] = [itm].[IA_columns_name] + '_' + ISNULL([itm].[IA_included_columns], '') + GROUP BY [itm].[IA_schema_name], + [itm].[IA_table_name], + [itm].[IA_columns_name], + [itm].[IA_included_columns]; + + IF @msg <> '' + BEGIN + RAISERROR(@msg, 16, 4); + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END; + RETURN 1; + END; + + + /* fetch the indexes name and non listed indexes on the current instance */ + DECLARE curIdxName CURSOR FAST_FORWARD READ_ONLY FOR + SELECT DISTINCT + [itm].[IA_schema_name], + [itm].[IA_table_name], + itm.[IA_indexesAlignementActions_id] + FROM [upd].[IA_IndexesAlignementActions] [itm]; + + OPEN curIdxName; + + FETCH NEXT FROM curIdxName + INTO @schemaName, + @tableName, + @indexFK; + + WHILE @@FETCH_STATUS = 0 + BEGIN + /* map the list to the actual indexes */ + WITH ColInfo + AS (SELECT o.[name] AS TblName, + s.[name] + '.' + o.[name] AS SchemaTbl, + i.[name] AS IndexName, + i.[is_primary_key] AS IsPrimaryKey, + i.[is_unique_constraint] AS IsUniqueConstraint, + i.[is_unique] AS IsUnique, + c.[name] AS ColName, + c.[is_computed] AS IsComputedCol, + ic.[is_included_column] AS IsIncludedCol, + ic.[key_ordinal], + i.[filter_definition] AS FilterDefinition, + i.type AS indexType /* 1=clustered, 2=non clustered */ + FROM [sys].[objects] o + INNER JOIN [sys].[schemas] s + ON o.schema_id = s.schema_id + INNER JOIN [sys].[columns] c + ON o.object_id = c.object_id + INNER JOIN [sys].[indexes] i + ON c.object_id = i.object_id + INNER JOIN [sys].[index_columns] ic + ON i.[index_id] = ic.[index_id] + AND o.object_id = ic.object_id + AND c.[column_id] = ic.[column_id]) + UPDATE [itm] + SET [itm].[indexName] = i.[name], + [itm].[includedColumnsMatch_internal] = CASE + WHEN ISNULL([itm].[includedColumns_inp], '') = ISNULL( + [idx_cols].[includedColumns], + '' + ) THEN + 1 + ELSE + 0 + END, + [itm].[actualIncludedColumns_internal] = [idx_cols].[includedColumns], + [itm].[actualColumns_internal] = [idx_cols].[IndexColumns], + [itm].[isIndexFound_comp] = 1, + [itm].[isToBeCreated_comp] = 0, + [itm].[isToBeRecreated_comp] = CASE + WHEN idx_cols.indexType <> 1 + AND [itm].isClustered_inp = 1 + AND idx_cols.IsPrimaryKey = 0 THEN + 1 /* existing index is not clustered and not the PK, recreate */ + ELSE + 0 + END + FROM [sys].[indexes] AS i WITH (NOLOCK) + INNER JOIN [sys].[objects] o WITH (NOLOCK) + ON i.object_id = o.object_id + OUTER APPLY + ( + SELECT DISTINCT + x.TblName, + x.IndexName, + x.IsPrimaryKey, + x.IsUniqueConstraint, + x.IsUnique, + c.IndexColumns, + ci.includedColumns, + cc.ComputedColumns, + x.FilterDefinition, + x.indexType + FROM ColInfo x + CROSS APPLY + ( + SELECT STUFF(sq.strXML, 1, 2, '') AS IndexColumns + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 0 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) c + OUTER APPLY + ( + SELECT STUFF(sq.strXML, 1, 2, '') AS includedColumns + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 1 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) ci + OUTER APPLY + ( + SELECT STUFF(sq.strXML, 1, 2, '') AS ComputedColumns + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsComputedCol = 1 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) cc + WHERE x.TblName = o.[name] + AND x.IndexName = i.[name] + ) idx_cols + LEFT OUTER JOIN + ( + SELECT SCHEMA_NAME(tab.schema_id) + '.' + tab.[name] AS [table], + col.[column_id], + col.[name] AS [COLUMN_NAME], + CASE + WHEN fk.object_id IS NOT NULL THEN + '>-' + ELSE + NULL + END AS rel, + SCHEMA_NAME(pk_tab.schema_id) + '.' + pk_tab.[name] AS primary_table, + pk_col.[name] AS pk_column_name, + fk_cols.[constraint_column_id] AS NO, + fk.[name] AS fk_constraint_name, + tab.[name] AS tbl_name + FROM [sys].[tables] tab + INNER JOIN [sys].[columns] col + ON col.object_id = tab.object_id + LEFT OUTER JOIN [sys].[foreign_key_columns] fk_cols + ON fk_cols.[parent_object_id] = tab.object_id + AND fk_cols.[parent_column_id] = col.[column_id] + LEFT OUTER JOIN [sys].[foreign_keys] fk + ON fk.object_id = fk_cols.[constraint_object_id] + LEFT OUTER JOIN [sys].[tables] pk_tab + ON pk_tab.object_id = fk_cols.[referenced_object_id] + LEFT OUTER JOIN [sys].[columns] pk_col + ON pk_col.[column_id] = fk_cols.[referenced_column_id] + AND pk_col.object_id = fk_cols.[referenced_object_id] + WHERE fk.object_id IS NOT NULL + ) fk + ON fk.tbl_name = o.[name] + AND idx_cols.IndexColumns LIKE '%' + fk.[COLUMN_NAME] + '%' + INNER JOIN @indexesToMaintains [itm] + ON itm.[SchemaName] = @schemaName + AND itm.[TableName] = @tableName + AND itm.[columnsName_inp] COLLATE Latin1_General_CI_AI = [idx_cols].[IndexColumns] COLLATE Latin1_General_CI_AI + AND ISNULL([itm].[includedColumns_inp], '')COLLATE Latin1_General_CI_AI = ISNULL( + [idx_cols].[includedColumns], + '' + )COLLATE Latin1_General_CI_AI + WHERE o.type = 'U' -- user table + --AND i.[index_id] = s.[index_id] + --AND s.[database_id] = DB_ID() + AND o.[name] = @tableName + AND SCHEMA_NAME(o.schema_id) = @schemaName + OPTION (RECOMPILE); + + + /* Add the indexes not in the list but present on the server to the list */ + WITH ColInfo + AS (SELECT o.[name] AS TblName, + SCHEMA_NAME(o.[schema_id]) AS [SchemaName], + s.[name] + '.' + o.[name] AS SchemaTbl, + i.[name] AS IndexName, + i.[is_primary_key] AS IsPrimaryKey, + i.[is_unique_constraint] AS IsUniqueConstraint, + i.[is_unique] AS IsUnique, + c.[name] AS ColName, + c.[is_computed] AS IsComputedCol, + ic.[is_included_column] AS IsIncludedCol, + ic.[key_ordinal], + i.[filter_definition] AS FilterDefinition + FROM [sys].[objects] o + INNER JOIN [sys].[schemas] s + ON o.schema_id = s.schema_id + INNER JOIN [sys].[columns] c + ON o.object_id = c.object_id + INNER JOIN [sys].[indexes] i + ON c.object_id = i.object_id + INNER JOIN [sys].[index_columns] ic + ON i.[index_id] = ic.[index_id] + AND o.object_id = ic.object_id + AND c.[column_id] = ic.[column_id]) + INSERT INTO @indexesToMaintains + ( + [SchemaName], + [TableName], + [columnsName_inp], + [indexName], + [isToBeDeleted_inp], + [isToBeDeleted_comp], + [isToBeRecreated_inp], + [statusMsg_internal], + [actualIncludedColumns_internal], + [actualColumns_internal], + [isIndexFound_comp], + [isToBeCreated_comp], + [expectedIndexName_inp] + ) + SELECT DISTINCT + @schemaName AS [SchemaName], + @tableName AS [TableName], + c.[IndexColumns] AS [columnsName], + x.[IndexName] AS indexName, + 0 AS [isToBeDeleted_inp], + CASE + WHEN EXISTS + ( + SELECT 1 + FROM @indexesToMaintains [itm] + WHERE itm.[expectedIndexName_inp] = x.[IndexName] + OR ISNULL(itm.[columnsName_inp], '') <> ISNULL(itm.[actualColumns_internal], '') + OR ISNULL(itm.[includedColumns_inp], '') <> ISNULL( + itm.[actualIncludedColumns_internal], + '' + ) + ) THEN + 1 + WHEN @in_dropUnreferencedIndexes = 1 THEN + 1 + ELSE + 0 + END AS [isToBeDeleted_comp], + 0 AS [isToBeRecreated_inp], + CASE + WHEN EXISTS + ( + SELECT 1 + FROM @indexesToMaintains [itm] + WHERE itm.[expectedIndexName_inp] = x.[IndexName] + OR ISNULL(itm.[columnsName_inp], '') <> ISNULL(itm.[actualColumns_internal], '') + OR ISNULL(itm.[includedColumns_inp], '') <> ISNULL( + itm.[actualIncludedColumns_internal], + '' + ) + ) THEN + 'Index present locally not as expected, drop before creation' + WHEN @in_dropUnreferencedIndexes = 1 THEN + 'Index present locally only' + ELSE + NULL + END AS [statusMsg_internal], + ci.[IncludedColumns] AS [actualIncludedColumns_internal], + c.[IndexColumns] AS [actualColumns_internal], + 1 AS [isIndexFound_comp], + 0 AS [isToBeCreated_comp], + x.[IndexName] AS [expectedIndexName_inp] + FROM ColInfo x + CROSS APPLY + ( + SELECT IndexColumns = STUFF(sq.strXML, 1, 2, '') + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 0 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) c + OUTER APPLY + ( + SELECT IncludedColumns = STUFF(sq.strXML, 1, 2, '') + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsIncludedCol = 1 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) ci + OUTER APPLY + ( + SELECT ComputedColumns = STUFF(sq.strXML, 1, 2, '') + FROM + ( + SELECT ', ' + ISNULL(x2.ColName, '') + FROM ColInfo x2 + WHERE x.TblName = x2.TblName + AND x.IndexName = x2.IndexName + AND x2.IsComputedCol = 1 + ORDER BY x2.[key_ordinal] + FOR XML PATH('') + ) sq(strXML) + ) cc + LEFT OUTER JOIN + ( + SELECT SCHEMA_NAME(tab.schema_id) + '.' + tab.[name] AS [table], + col.[column_id], + col.[name] AS [COLUMN_NAME], + CASE + WHEN fk.object_id IS NOT NULL THEN + '>-' + ELSE + NULL + END AS rel, + SCHEMA_NAME(pk_tab.schema_id) + '.' + pk_tab.[name] AS primary_table, + pk_col.[name] AS pk_column_name, + fk_cols.[constraint_column_id] AS NO, + fk.[name] AS fk_constraint_name, + tab.[name] AS tbl_name + FROM [sys].[tables] tab + INNER JOIN [sys].[columns] col + ON col.object_id = tab.object_id + LEFT OUTER JOIN [sys].[foreign_key_columns] fk_cols + ON fk_cols.[parent_object_id] = tab.object_id + AND fk_cols.[parent_column_id] = col.[column_id] + LEFT OUTER JOIN [sys].[foreign_keys] fk + ON fk.object_id = fk_cols.[constraint_object_id] + LEFT OUTER JOIN [sys].[tables] pk_tab + ON pk_tab.object_id = fk_cols.[referenced_object_id] + LEFT OUTER JOIN [sys].[columns] pk_col + ON pk_col.[column_id] = fk_cols.[referenced_column_id] + AND pk_col.object_id = fk_cols.[referenced_object_id] + WHERE fk.object_id IS NOT NULL + ) fk + ON fk.tbl_name = x.[TblName] + AND [c].[IndexColumns] LIKE '%' + fk.[COLUMN_NAME] + '%' + WHERE x.[SchemaName] = @schemaName + AND x.[TblName] = @tableName + AND NOT EXISTS + ( + SELECT 1 + FROM @indexesToMaintains [itm2] + WHERE 1 = 1 + AND ISNULL(itm2.[actualColumns_internal], '') = ISNULL(c.[IndexColumns], '') + AND ISNULL(itm2.[actualIncludedColumns_internal], '') = ISNULL(ci.[IncludedColumns], '') + ) + OPTION (RECOMPILE); + + + FETCH NEXT FROM curIdxName + INTO @schemaName, + @tableName, + @indexFK; + END; + + CLOSE curIdxName; + DEALLOCATE curIdxName; + + + /* Adjust the "_comp" flags to create a matrix of actions */ + /* to be created */ + UPDATE [itm] + SET [itm].[isToBeCreated_comp] = CASE + WHEN [itm].[isToBeDeleted_inp] = 0 THEN + 1 + ELSE + 0 + END + FROM @indexesToMaintains [itm] + WHERE [itm].[indexName] IS NULL /* index was not found on the server */ + AND [itm].[expectedIndexName_inp] IS NOT NULL /* we did gave an index name, ie: we want to create it if missing */ + ; + + /* to be renamed */ + UPDATE [itm] + SET [itm].[isToBeRenamed_comp] = 1 + FROM @indexesToMaintains [itm] + WHERE [itm].[indexName] IS NOT NULL /* index was not found on the server */ + AND [itm].[expectedIndexName_inp] IS NOT NULL /* we did gave an index name, ie: we expect that index to be present */ + AND [indexName] <> [itm].[expectedIndexName_inp] + AND [isToBeDeleted_inp] = 0 + AND [isToBeDeleted_comp] = 0 + AND [isToBeRecreated_inp] = 0 + AND [isToBeRecreated_comp] = 0; + + /* to be re-created */ + UPDATE [itm] + SET [itm].[isToBeRecreated_comp] = 1 + FROM @indexesToMaintains [itm] + WHERE [isToBeRecreated_inp] = 1; + + --/* to be re-created because wrong index type*/ + --UPDATE [itm] + --SET [itm].[isToBeRecreated_comp] = 1 + --FROM @indexesToMaintains [itm] + --WHERE [itm].isClustered_inp = 1 + --AND itm.; + + /* to be deleted, because specified in table */ + UPDATE itm + SET [itm].[isToBeDeleted_comp] = CASE + WHEN [itm].[isIndexFound_comp] = 0 THEN + 0 + ELSE + 1 + END, + [itm].[isToBeRecreated_comp] = 0, /* deletion override re-create */ + [itm].[isToBeRenamed_comp] = 0 /* deletion override rename */ + FROM @indexesToMaintains [itm] + WHERE [itm].[isToBeDeleted_inp] = 1; + + /* to be deleted, because different to specs. link on index name */ + UPDATE [exp] + SET [exp].[isToBeCreated_comp] = 1 /* flag the expected index "to be created" */ + FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[indexName] = [exp].[expectedIndexName_inp] + WHERE [exp].[isToBeDeleted_comp] = 0 + AND [exp].[isToBeCreated_comp] = 0 + AND [exp].[isToBeRenamed_comp] = 0 + AND [exp].[isToBeRecreated_inp] = 0 + AND + ( + [exp].[columnsName_inp] != [act].[actualColumns_internal] + OR [exp].[includedColumns_inp] != [act].[actualIncludedColumns_internal] + ); + + UPDATE [act] + SET [act].[isToBeDeleted_comp] = 1 /* flag the actual index "to be deleted" */ + FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[indexName] = [exp].[expectedIndexName_inp] + WHERE ( + [exp].[columnsName_inp] != [act].[actualColumns_internal] + OR [exp].[includedColumns_inp] != [act].[actualIncludedColumns_internal] + ); + + /* to be deleted, because different to specs. link on index columns */ + UPDATE [exp] + SET [exp].[isToBeCreated_comp] = 1 /* flag the expected index "to be created" */ + FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[actualColumns_internal] = [exp].[columnsName_inp] + WHERE ( + [exp].[columnsName_inp] != [act].[actualColumns_internal] + OR [exp].[includedColumns_inp] != [act].[actualIncludedColumns_internal] + ); + + UPDATE [act] + SET [act].[isToBeDeleted_comp] = 1 /* flag the actual index "to be deleted" */ + FROM @indexesToMaintains [exp] --expected + JOIN @indexesToMaintains [act] --actual + ON [act].[actualColumns_internal] = [exp].[columnsName_inp] + WHERE ( + [exp].[columnsName_inp] != [act].[actualColumns_internal] + OR [exp].[includedColumns_inp] != [act].[actualIncludedColumns_internal] + ); + + /* if we have both "rename" and "delete" actions, remove the "rename" action */ + UPDATE @indexesToMaintains + SET [isToBeRenamed_comp] = 0 + WHERE [isToBeRenamed_comp] = 1 + AND [isToBeDeleted_comp] = 1; + + /* ensure that we don't have clash between indexes to create and indexes to rename */ + UPDATE ir + SET [ir].[isToBeRenamed_comp] = 0, /* do not rename this index */ + [ir].[isToBeDeleted_inp] = 1 /* drop this index instead, as we have one with the correct structure about to be created */ + FROM @indexesToMaintains [ic] /* to create */ + JOIN @indexesToMaintains [ir] /* to rename */ + ON ic.[expectedIndexName_inp] = ir.[expectedIndexName_inp] + WHERE [ic].[isToBeCreated_comp] = 1 + AND [ir].[isToBeRenamed_comp] = 1; + + + /* Show the action matrix */ + IF @in_debug > 0 + BEGIN + SELECT [itm].[isIndexFound_comp], + [itm].[isToBeCreated_comp], + [itm].[isToBeRenamed_comp], + [itm].[isToBeDeleted_comp], + [itm].[isToBeRecreated_comp], + [itm].[statusMsg_internal], + [itm].[IA_index_options], + '....' AS separator, + [itm].[isToBeDeleted_inp], + [itm].[isToBeRecreated_inp], + [itm].[indexName], + [itm].[expectedIndexName_inp], + [itm].[columnsName_inp], + [itm].[actualColumns_internal], + [itm].[includedColumns_inp], + [itm].[actualIncludedColumns_internal] + FROM @indexesToMaintains [itm] + ORDER BY [itm].[isIndexFound_comp], + [itm].[isToBeDeleted_inp], + [itm].[columnsName_inp]; + END; + + + /* Drop the indexe(s) that are to be deleted or recreated */ + SET @query = ''; + SELECT @query + = @query + 'DROP INDEX ' + [itm].[indexName] + ' ON ' + [itm].[SchemaName] + '.' + [itm].[TableName] + ';' + + CHAR(13) + CHAR(10) + FROM @indexesToMaintains [itm] + WHERE [itm].[isToBeDeleted_comp] = 1 + OR [itm].[isToBeRecreated_comp] = 1; + + IF @outputStatement = 1 + BEGIN + PRINT REPLICATE('-', 40); + PRINT '-- execute DROP INDEX'; + PRINT REPLICATE('-', 40); + PRINT @query; + PRINT REPLICATE('-', 40); + PRINT CHAR(13) + CHAR(10); + END; + + IF @executeStatement = 1 + BEGIN + EXECUTE (@query); + END; + + + /* rename existing indexe(s) */ + SET @query = ''; + SELECT @query + = @query + 'EXEC sp_rename @objname =''' + [itm].[TableName] + '.' + [itm].[indexName] + ''', @newname = ''' + + [itm].[expectedIndexName_inp] + ''';' + CHAR(13) + CHAR(10) + FROM @indexesToMaintains [itm] + WHERE [itm].[isToBeRenamed_comp] = 1; + + IF @outputStatement = 1 + BEGIN + PRINT REPLICATE('-', 40); + PRINT '-- execute sp_rename'; + PRINT REPLICATE('-', 40); + PRINT @query; + PRINT REPLICATE('-', 40); + PRINT CHAR(13) + CHAR(10); + END; + + IF @executeStatement = 1 + BEGIN + EXECUTE (@query); + END; + + + /* create indexe(s) */ + SET @query = ''; + SELECT @query + = @query + 'CREATE ' + CASE + WHEN [itm].[isUnique_inp] = 1 THEN + 'UNIQUE ' + ELSE + '' + END + CASE + WHEN [itm].[isClustered_inp] = 1 THEN + 'CLUSTERED' + ELSE + 'NONCLUSTERED' + END + ' INDEX ' + [itm].[expectedIndexName_inp] + ' ON ' + [itm].[SchemaName] + + '.' + [itm].[TableName] + '(' + [itm].[columnsName_inp] + ')' + + CASE + WHEN [itm].[includedColumns_inp] IS NOT NULL THEN + ' INCLUDE (' + [itm].[includedColumns_inp] + ')' + ELSE + '' + END + CHAR(13) + CHAR(10) + COALESCE('WITH(' + [itm].[IA_index_options] + ')' + CHAR(13) + CHAR(10), '') + + ';' + CHAR(13) + CHAR(10) + FROM @indexesToMaintains [itm] + WHERE ( + [itm].[isToBeCreated_comp] = 1 + OR [itm].[isToBeRecreated_comp] = 1 + ); + + IF @outputStatement = 1 + BEGIN + PRINT REPLICATE('-', 40); + PRINT '-- execute CREATE INDEX'; + PRINT REPLICATE('-', 40); + PRINT @query; + PRINT REPLICATE('-', 40); + PRINT CHAR(13) + CHAR(10); + END; + + IF @executeStatement = 1 + BEGIN + EXECUTE (@query); + END; + + /* record results in upd.IA_IndexesAlignementActions */ + UPDATE ia + SET ia.[IA_executionDate] = CURRENT_TIMESTAMP, + ia.[IA_foundIndexName] = ii.indexName, + ia.[IA_wasIndexFound] = ii.isIndexFound_comp, + ia.[IA_wasCreated] = ii.isToBeCreated_comp, + ia.[IA_wasRenamed] = ii.isToBeRenamed_comp, + ia.[IA_wasDeleted] = ii.isToBeDeleted_comp, + ia.[IA_wasRecreated] = ii.isToBeRecreated_comp, + ia.[IA_includedColumnsMatch] = ii.includedColumnsMatch_internal, + ia.[IA_actualColumns] = ii.actualColumns_internal, + ia.[IA_actualIncludedColumns] = ii.actualIncludedColumns_internal, + ia.[IA_statusMsg] = ii.statusMsg_internal + FROM [upd].[IA_IndexesAlignementActions] ia + JOIN @indexesToMaintains ii + ON ii.[IA_indexesAlignementActions] = ia.[IA_indexesAlignementActions_id] + WHERE ia.[IA_executionDate] IS NULL; +END; +GO diff --git a/OCTPDBA-414 - proc to align indexes/table.sql b/OCTPDBA-414 - proc to align indexes/table.sql new file mode 100644 index 0000000..901b9e6 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/table.sql @@ -0,0 +1,82 @@ +USE Arizona + +IF OBJECT_ID('upd.IA_IndexesAlignementActions') IS NOT NULL + DROP TABLE upd.IA_IndexesAlignementActions; +GO + +CREATE TABLE upd.IA_IndexesAlignementActions( + IA_indexesAlignementActions_id INT NOT NULL IDENTITY(1,1) + ,IA_executionDate DATETIME2(0) NULL /* The date and time the action was executed, null if the action is to be executed */ + ,IA_schema_name VARCHAR(100) NOT NULL /* the schema the table is part of */ + ,IA_table_name VARCHAR(100) NOT NULL /* On which table is the index, whithout the schema */ + ,IA_columns_name VARCHAR(MAX) NOT NULL /* list all the columns of the index, in the correct orders */ + ,IA_is_clustered BIT NOT NULL /* Is the indexe a clustered index ? */ + ,IA_is_unique BIT NOT NULL /* Is the index unique ? */ + ,IA_included_columns VARCHAR(MAX)NULL /* list all the included columns the index should have. */ + ,IA_index_options VARCHAR(MAX) NULL /* Give here the index options if any. they will be applied on index creation but they are not part of the delta checks */ + ,IA_is_to_be_deleted BIT NOT NULL /* must the script drop this index ? */ + ,IA_is_to_be_recreated BIT NOT NULL /* must the script recreate this index ? + If an existing index differs from the definition, it will be dropped and the correct one created. + Use this only to force the re-creation even if the structure is identical */ + ,IA_expected_index_name VARCHAR(500) NOT NULL /* the name the index should have, used to determine if a rename of the existing index should be done */ + + + /* everything below is a log of past changes */ + ,[IA_foundIndexName] VARCHAR(MAX) NULL /* computed by the script. The index name on this system, as indexes name can be different accross systems*/ + ,[IA_wasIndexFound] BIT NOT NULL /* computed by the script. set to 1 if the index is present on the server */ + CONSTRAINT DF_IA_wasIndexFound DEFAULT 0 + ,[IA_wasCreated] BIT NULL /* computed by the script. does this index was created on the server ? */ + CONSTRAINT DF_IA_wasCreated DEFAULT 0 + ,[IA_wasRenamed] BIT NULL /* computed by the script. does this index was renamed ? */ + CONSTRAINT DF_IA_wasRenamed DEFAULT 0 + ,[IA_wasDeleted] BIT NULL /* computed by the script. does this index will be deleted ? */ + CONSTRAINT DF_IA_wasDeleted DEFAULT 0 + ,[IA_wasRecreated] BIT NULL /* computed by the script. does this index will be re-created ? */ + CONSTRAINT DF_IA_wasRecreated DEFAULT 0 + ,[IA_includedColumnsMatch] BIT NULL /* computed by the script. Are the expected and actual included columns identical ? */ + ,[IA_actualColumns] VARCHAR(MAX) NULL /* the actual columns in the existing index */ + ,[IA_actualIncludedColumns] VARCHAR(MAX) NULL /* the actual columns in the INCLUDE part of the index */ + ,[IA_statusMsg] VARCHAR(MAX) NULL /* Message, used for debug */ + ,CONSTRAINT PK_IA_IndexesAlignementActions PRIMARY KEY(IA_indexesAlignementActions_id) +); +ALTER TABLE upd.IA_IndexesAlignementActions ADD CONSTRAINT DF_IA_is_clustered DEFAULT 0 FOR IA_is_clustered; +ALTER TABLE upd.IA_IndexesAlignementActions ADD CONSTRAINT DF_IA_is_unique DEFAULT 0 FOR IA_is_unique; +ALTER TABLE upd.IA_IndexesAlignementActions ADD CONSTRAINT DF_IA_is_to_be_deleted DEFAULT 0 FOR IA_is_to_be_deleted; +ALTER TABLE upd.IA_IndexesAlignementActions ADD CONSTRAINT DF_IA_is_to_be_recreated DEFAULT 0 FOR IA_is_to_be_recreated; + +CREATE UNIQUE NONCLUSTERED INDEX NCUIX_IA_IndexesAlignementActions_index_name ON upd.IA_IndexesAlignementActions(IA_expected_index_name); +GO + +INSERT INTO upd.IA_IndexesAlignementActions ( + IA_columns_name, + IA_is_to_be_deleted, + IA_is_to_be_recreated, + IA_expected_index_name, + IA_included_columns, + [IA_schema_name], + [IA_table_name], + [IA_is_clustered], + [IA_is_unique] +) +/* indexe(s) we do want */ +VALUES('Entry_id',0,0,'PK_Entry_id', NULL,'dbo','entry',0,0) +,('ET_batch_run',0,0,'NCIX_Entry_COL_ET_batch_run',NULL,'dbo','entry',0,0) +,('ET_accounting_period',0,0,'NCIX_Entry_COL_ET_accounting_period','Entry_ID','dbo','entry',0,0) +,('ET_document_header',0,0,'NCIX_Entry_COL_ET_document_header','ET_debit_currency_amount, ET_credit_currency_amount','dbo','entry',0,0) +,('ET_account, ET_document_header',0,0,'NCIX_Entry_COL_ET_account','Entry_ID','dbo','entry',0,0) +,('ET_reconciliation_status, ET_account, ET_document_header',0,0,'NCIX_Entry_COL_ET_reconciliation_status','ET_debit_base_amount, ET_credit_base_amount, ET_reconciliation_base_amount','dbo','entry',0,0) +,('ET_predefined_entry',0,0,'NCIX_Entry_COL_ET_predefined_entry',NULL,'dbo','entry',0,0) +,('ET_entry_address',0,0,'NCIX_Entry_COL_ET_entry_address',NULL,'dbo','entry',0,0) +,('ET_currency',0,0,'NCIX_Entry_COL_ET_currency',NULL,'dbo','entry',0,0) + +/* indexe(s) used in central, even if not in pharmacies*/ +,('ET_entry_type',0,0,'NCIX_Entry_COL_ET_entry_type',NULL,'dbo','entry',0,0) + +/* indexe(s) we really want to drop*/ +,('ET_master_ID',1,0,'NCIX_Entry_COL_ET_master_ID',NULL,'dbo','entry',0,0) +,('ET_bmc_user_profile',1,0,'NCIX_Entry_COL_ET_bmc_user_profile',NULL,'dbo','entry',0,0) +,('ET_sales_tax_code',1,0,'NCIX_Entry_COL_ET_sales_tax_code',NULL,'dbo','entry',0,0) +,('ET_APS_TS', 1, 0, 'NCIX_Entry_COL_ET_APS_TS',NULL,'dbo','entry',0,0) + +; + diff --git a/OCTPDBA-414 - proc to align indexes/test.sql b/OCTPDBA-414 - proc to align indexes/test.sql new file mode 100644 index 0000000..ca18755 --- /dev/null +++ b/OCTPDBA-414 - proc to align indexes/test.sql @@ -0,0 +1,156 @@ +USE Arizona; + +BEGIN TRANSACTION; +SET XACT_ABORT ON; + + +INSERT INTO upd.IA_IndexesAlignementActions +( + IA_executionDate, + IA_schema_name, + IA_table_name, + IA_columns_name, + IA_is_clustered, + IA_is_unique, + IA_included_columns, + IA_is_to_be_deleted, + IA_is_to_be_recreated, + IA_expected_index_name, + IA_foundIndexName, + IA_wasIndexFound, + IA_wasCreated, + IA_wasRenamed, + IA_wasDeleted, + IA_wasRecreated, + IA_includedColumnsMatch, + IA_actualColumns, + IA_actualIncludedColumns, + IA_statusMsg, + IA_index_options +) +SELECT + NULL AS IA_executionDate, + 'dbo' AS IA_schema_name, + 'Criteria' AS IA_table_name, + 'CR_code, CR_criteria_type' AS IA_columns_name, + 0 AS IA_is_clustered, + 1 AS IA_is_unique, + NULL AS IA_included_columns, + 0 AS IA_is_to_be_deleted, + 0 AS IA_is_to_be_recreated, + 'NCIX_Criteria_COL_CR_code' AS IA_expected_index_name, + NULL AS IA_foundIndexName, + 0 AS IA_wasIndexFound, + 0 AS IA_wasCreated, + 0 AS IA_wasRenamed, + 0 AS IA_wasDeleted, + 0 AS IA_wasRecreated, + NULL AS IA_includedColumnsMatch, + NULL AS IA_actualColumns, + NULL AS IA_actualIncludedColumns, + NULL AS IA_statusMsg , + NULL AS IA_index_options +UNION +SELECT + NULL AS IA_executionDate, + 'dbo' AS IA_schema_name, + 'Criteria' AS IA_table_name, + 'CR_criteria_type' AS IA_columns_name, + 0 AS IA_is_clustered, + 0 AS IA_is_unique, + NULL AS IA_included_columns, + 0 AS IA_is_to_be_deleted, + 0 AS IA_is_to_be_recreated, + 'NCIX_Criteria_COL_CR_criteria_type' AS IA_expected_index_name, + NULL AS IA_foundIndexName, + 0 AS IA_wasIndexFound, + 0 AS IA_wasCreated, + 0 AS IA_wasRenamed, + 0 AS IA_wasDeleted, + 0 AS IA_wasRecreated, + NULL AS IA_includedColumnsMatch, + NULL AS IA_actualColumns, + NULL AS IA_actualIncludedColumns, + NULL AS IA_statusMsg , + NULL AS IA_index_options +UNION +SELECT + NULL AS IA_executionDate, + 'dbo' AS IA_schema_name, + 'Criteria' AS IA_table_name, + 'CR_master_ID' AS IA_columns_name, + 0 AS IA_is_clustered, + 0 AS IA_is_unique, + NULL AS IA_included_columns, + 0 AS IA_is_to_be_deleted, + 01 AS IA_is_to_be_recreated, + 'NCIX_Criteria_COL_CR_master_ID' AS IA_expected_index_name, + NULL AS IA_foundIndexName, + 0 AS IA_wasIndexFound, + 0 AS IA_wasCreated, + 0 AS IA_wasRenamed, + 0 AS IA_wasDeleted, + 0 AS IA_wasRecreated, + NULL AS IA_includedColumnsMatch, + NULL AS IA_actualColumns, + NULL AS IA_actualIncludedColumns, + NULL AS IA_statusMsg, + NULL AS IA_index_options +UNION +SELECT + NULL AS IA_executionDate, + 'dbo' AS IA_schema_name, + 'Criteria' AS IA_table_name, + 'CR_VGUID' AS IA_columns_name, + 0 AS IA_is_clustered, + 0 AS IA_is_unique, + NULL AS IA_included_columns, + 0 AS IA_is_to_be_deleted, + 0 AS IA_is_to_be_recreated, + 'NCIX_Criteria_COL_CR_VGUID' AS IA_expected_index_name, + NULL AS IA_foundIndexName, + 0 AS IA_wasIndexFound, + 0 AS IA_wasCreated, + 0 AS IA_wasRenamed, + 0 AS IA_wasDeleted, + 0 AS IA_wasRecreated, + NULL AS IA_includedColumnsMatch, + NULL AS IA_actualColumns, + NULL AS IA_actualIncludedColumns, + NULL AS IA_statusMsg , + NULL AS IA_index_options +UNION +SELECT + NULL AS IA_executionDate, + 'dbo' AS IA_schema_name, + 'Criteria' AS IA_table_name, + 'Criteria_ID' AS IA_columns_name, + 1 AS IA_is_clustered, + 1 AS IA_is_unique, + NULL AS IA_included_columns, + 0 AS IA_is_to_be_deleted, + 0 AS IA_is_to_be_recreated, + 'PK_Criteria_ID' AS IA_expected_index_name, + NULL AS IA_foundIndexName, + 0 AS IA_wasIndexFound, + 0 AS IA_wasCreated, + 0 AS IA_wasRenamed, + 0 AS IA_wasDeleted, + 0 AS IA_wasRecreated, + NULL AS IA_includedColumnsMatch, + NULL AS IA_actualColumns, + NULL AS IA_actualIncludedColumns, + NULL AS IA_statusMsg , + NULL AS IA_index_options + + + + + +EXEC [upd].[alignIndexes] @in_debug = 01, -- int + @in_dropUnreferencedIndexes = NULL; -- bit + +SELECT * +FROM upd.IA_IndexesAlignementActions; + +ROLLBACK TRANSACTION; \ No newline at end of file