Comparing T-SQL Cross Apply with MySQL GROUP_CONCAT
Steve Novoselac posted a good article about using CROSS APPLY with TSQL. This is a really useful technique for transforming data into grouped lists. It made me think of a similar feature in MySQL, a function, called GROUP_CONCAT. Here’s a demonstration of CROSS APPLY with TSQL and GROUP_CONCAT in MySQL to achieve the same thing. I’m going to use the example of continents and their member countries.
First create the follow table structure in SQL Server.
CREATE TABLE [dbo].[geonames](
[ISO] [varchar](5) NOT NULL,
[ISO3] [varchar](3) NULL,
[ISO-Numeric] [smallint] NULL,
[fips] [varchar](2) NULL,
[Country] [varchar](44) NULL,
[Capital] [varchar](20) NULL,
[Area(in sq km)] [real] NULL,
[Population] [int] NULL,
[Continent] [varchar](2) NULL,
[tld] [varchar](3) NULL,
[CurrencyCode] [varchar](3) NULL,
[CurrencyName] [varchar](13) NULL,
[Phone] [varchar](16) NULL,
[Postal Code Format] [varchar](55) NULL,
[Postal Code Regex] [varchar](155) NULL,
[Languages] [varchar](56) NULL,
[geonameid] [int] NULL,
[neighbours] [varchar](41) NULL,
[EquivalentFipsCode] [varchar](2) NULL,
CONSTRAINT [PK_ISO] PRIMARY KEY CLUSTERED
(
[ISO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
The add this data (it scrolls quite a way). N.B. The data here has been taken from the GeoNames project.
SET NOCOUNT ON; SET XACT_ABORT ON; GO BEGIN TRANSACTION; INSERT INTO [dbo].[geonames]([ISO], [ISO3], [ISO-Numeric], [fips], [Country], [Capital], [Area(in sq km)], [Population], [Continent], [tld], [CurrencyCode], [CurrencyName], [Phone], [Postal Code Format], [Postal Code Regex], [Languages], [geonameid], [neighbours], [EquivalentFipsCode]) SELECT N'AD', N'AND', 20, N'AN', N'Andorra', N'Andorra la Vella', N'468', 72000, N'EU', N'.ad', N'EUR', N'Euro', N'376', N'AD###', N'^(?:AD)*(\d{3})$', N'ca,fr-AD,pt', 3041565, N'ES,FR', N'' UNION ALL SELECT N'AE', N'ARE', 784, N'AE', N'United Arab Emirates', N'Abu Dhabi', N'82880', 4621000, N'AS', N'.ae', N'AED', N'Dirham', N'971', N'', N'', N'ar-AE,fa,en,hi,ur', 290557, N'SA,OM', N'' UNION ALL SELECT N'AF', N'AFG', 4, N'AF', N'Afghanistan', N'Kabul', N'647500', 32738000, N'AS', N'.af', N'AFN', N'Afghani', N'93', N'', N'', N'fa-AF,ps,uz-AF,tk', 1149361, N'TM,CN,IR,TJ,PK,UZ', N'' UNION ALL SELECT N'AG', N'ATG', 28, N'AC', N'Antigua and Barbuda', N'St. John''s', N'443', 69000, N'NA', N'.ag', N'XCD', N'Dollar', N'-267', N'', N'', N'en-AG', 3576396, N'', N'' UNION ALL SELECT N'AI', N'AIA', 660, N'AV', N'Anguilla', N'The Valley', N'102', 13254, N'NA', N'.ai', N'XCD', N'Dollar', N'-263', N'', N'', N'en-AI', 3573511, N'', N'' UNION ALL SELECT N'AL', N'ALB', 8, N'AL', N'Albania', N'Tirana', N'28748', 3619000, N'EU', N'.al', N'ALL', N'Lek', N'355', N'', N'', N'sq,el', 783754, N'MK,GR,CS,ME,RS', N'' UNION ALL SELECT N'AM', N'ARM', 51, N'AM', N'Armenia', N'Yerevan', N'29800', 2968000, N'AS', N'.am', N'AMD', N'Dram', N'374', N'######', N'^(\d{6})$', N'hy', 174982, N'GE,IR,AZ,TR', N'' UNION ALL SELECT N'AN', N'ANT', 530, N'NT', N'Netherlands Antilles', N'Willemstad', N'960', 136197, N'NA', N'.an', N'ANG', N'Guilder', N'599', N'', N'', N'nl-AN,en,es', 3513447, N'GP', N'' UNION ALL SELECT N'AO', N'AGO', 24, N'AO', N'Angola', N'Luanda', N'1246700', 12531000, N'AF', N'.ao', N'AOA', N'Kwanza', N'244', N'', N'', N'pt-AO', 3351879, N'CD,NA,ZM,CG', N'' UNION ALL SELECT N'AQ', N'ATA', 10, N'AY', N'Antarctica', N'', N'1.4E+07', 0, N'AN', N'.aq', N'', N'', N'', N'', N'', N'', 6697173, N'', N'' UNION ALL SELECT N'AR', N'ARG', 32, N'AR', N'Argentina', N'Buenos Aires', N'2766890', 40677000, N'SA', N'.ar', N'ARS', N'Peso', N'54', N'@####@@@', N'^([A-Z]\d{4}[A-Z]{3})$', N'es-AR,en,it,de,fr', 3865483, N'CL,BO,UY,PY,BR', N'' UNION ALL SELECT N'AS', N'ASM', 16, N'AQ', N'American Samoa', N'Pago Pago', N'199', 57881, N'OC', N'.as', N'USD', N'Dollar', N'-683', N'', N'', N'en-AS,sm,to', 5880801, N'', N'' UNION ALL SELECT N'AT', N'AUT', 40, N'AU', N'Austria', N'Vienna', N'83858', 8205000, N'EU', N'.at', N'EUR', N'Euro', N'43', N'####', N'^(\d{4})$', N'de-AT,hr,hu,sl', 2782113, N'CH,DE,HU,SK,CZ,IT,SI,LI', N'' UNION ALL SELECT N'AU', N'AUS', 36, N'AS', N'Australia', N'Canberra', N'7686850', 20600000, N'OC', N'.au', N'AUD', N'Dollar', N'61', N'####', N'^(\d{4})$', N'en-AU', 2077456, N'', N'' UNION ALL SELECT N'AW', N'ABW', 533, N'AA', N'Aruba', N'Oranjestad', N'193', 71566, N'NA', N'.aw', N'AWG', N'Guilder', N'297', N'', N'', N'nl-AW,es,en', 3577279, N'', N'' UNION ALL SELECT N'AX', N'ALA', 248, N'', N'Aland Islands', N'Mariehamn', N'0', 26711, N'EU', N'.ax', N'EUR', N'Euro', N'340', N'', N'', N'sv-AX', 661882, N'', N'FI' UNION ALL SELECT N'AZ', N'AZE', 31, N'AJ', N'Azerbaijan', N'Baku', N'86600', 8177000, N'AS', N'.az', N'AZN', N'Manat', N'994', N'AZ ####', N'^(?:AZ)*(\d{4})$', N'az,ru,hy', 587116, N'GE,IR,AM,TR,RU', N'' UNION ALL SELECT N'BA', N'BIH', 70, N'BK', N'Bosnia and Herzegovina', N'Sarajevo', N'51129', 4590000, N'EU', N'.ba', N'BAM', N'Marka', N'387', N'#####', N'^(\d{5})$', N'bs,hr-BA,sr-BA', 3277605, N'CS,HR,ME,RS', N'' UNION ALL SELECT N'BB', N'BRB', 52, N'BB', N'Barbados', N'Bridgetown', N'431', 281000, N'NA', N'.bb', N'BBD', N'Dollar', N'-245', N'BB#####', N'^(?:BB)*(\d{5})$', N'en-BB', 3374084, N'', N'' UNION ALL SELECT N'BD', N'BGD', 50, N'BG', N'Bangladesh', N'Dhaka', N'144000', 153546000, N'AS', N'.bd', N'BDT', N'Taka', N'880', N'####', N'^(\d{4})$', N'bn-BD,en', 1210997, N'MM,IN', N'' UNION ALL SELECT N'BE', N'BEL', 56, N'BE', N'Belgium', N'Brussels', N'30510', 10403000, N'EU', N'.be', N'EUR', N'Euro', N'32', N'####', N'^(\d{4})$', N'nl-BE,fr-BE,de-BE', 2802361, N'DE,NL,LU,FR', N'' UNION ALL SELECT N'BF', N'BFA', 854, N'UV', N'Burkina Faso', N'Ouagadougou', N'274200', 14761000, N'AF', N'.bf', N'XOF', N'Franc', N'226', N'', N'', N'fr-BF', 2361809, N'NE,BJ,GH,CI,TG,ML', N'' UNION ALL SELECT N'BG', N'BGR', 100, N'BU', N'Bulgaria', N'Sofia', N'110910', 7262000, N'EU', N'.bg', N'BGN', N'Lev', N'359', N'####', N'^(\d{4})$', N'bg,tr-BG', 732800, N'MK,GR,RO,CS,TR,RS', N'' UNION ALL SELECT N'BH', N'BHR', 48, N'BA', N'Bahrain', N'Manama', N'665', 718000, N'AS', N'.bh', N'BHD', N'Dinar', N'973', N'####|###', N'^(\d{3}\d?)$', N'ar-BH,en,fa,ur', 290291, N'', N'' UNION ALL SELECT N'BI', N'BDI', 108, N'BY', N'Burundi', N'Bujumbura', N'27830', 8691000, N'AF', N'.bi', N'BIF', N'Franc', N'257', N'', N'', N'fr-BI,rn', 433561, N'TZ,CD,RW', N'' UNION ALL SELECT N'BJ', N'BEN', 204, N'BN', N'Benin', N'Porto-Novo', N'112620', 8294000, N'AF', N'.bj', N'XOF', N'Franc', N'229', N'', N'', N'fr-BJ', 2395170, N'NE,TG,BF,NG', N'' UNION ALL SELECT N'BL', N'BLM', 652, N'TB', N'Saint Barthélemy', N'Gustavia', N'21', 8450, N'NA', N'.gp', N'EUR', N'Euro', N'590', N'### ###', N'', N'fr', 3578476, N'', N'' UNION ALL SELECT N'BM', N'BMU', 60, N'BD', N'Bermuda', N'Hamilton', N'53', 65365, N'NA', N'.bm', N'BMD', N'Dollar', N'-440', N'@@ ##', N'^([A-Z]{2}\d{2})$', N'en-BM,pt', 3573345, N'', N'' UNION ALL SELECT N'BN', N'BRN', 96, N'BX', N'Brunei', N'Bandar Seri Begawan', N'5770', 381000, N'AS', N'.bn', N'BND', N'Dollar', N'673', N'@@####', N'^([A-Z]{2}\d{4})$', N'ms-BN,en-BN', 1820814, N'MY', N'' UNION ALL SELECT N'BO', N'BOL', 68, N'BL', N'Bolivia', N'La Paz', N'1098580', 9247000, N'SA', N'.bo', N'BOB', N'Boliviano', N'591', N'', N'', N'es-BO,qu,ay', 3923057, N'PE,CL,PY,BR,AR', N'' UNION ALL SELECT N'BR', N'BRA', 76, N'BR', N'Brazil', N'Brasília', N'8511965', 191908000, N'SA', N'.br', N'BRL', N'Real', N'55', N'#####-###', N'^(\d{8})$', N'pt-BRR,es,en,fr', 3469034, N'SR,PE,BO,UY,GY,PY,GF,VE,CO,AR', N'' UNION ALL SELECT N'BS', N'BHS', 44, N'BF', N'Bahamas', N'Nassau', N'13940', 301790, N'NA', N'.bs', N'BSD', N'Dollar', N'-241', N'', N'', N'en-BS', 3572887, N'', N'' UNION ALL SELECT N'BT', N'BTN', 64, N'BT', N'Bhutan', N'Thimphu', N'47000', 2376000, N'AS', N'.bt', N'BTN', N'Ngultrum', N'975', N'', N'', N'dz', 1252634, N'CN,IN', N'' UNION ALL SELECT N'BV', N'BVT', 74, N'BV', N'Bouvet Island', N'', N'0', 0, N'AN', N'.bv', N'NOK', N'Krone', N'', N'', N'', N'', 3371123, N'', N'' UNION ALL SELECT N'BW', N'BWA', 72, N'BC', N'Botswana', N'Gaborone', N'600370', 1842000, N'AF', N'.bw', N'BWP', N'Pula', N'267', N'', N'', N'en-BW,tn-BW', 933860, N'ZW,ZA,NA', N'' UNION ALL SELECT N'BY', N'BLR', 112, N'BO', N'Belarus', N'Minsk', N'207600', 9685000, N'EU', N'.by', N'BYR', N'Ruble', N'375', N'######', N'^(\d{6})$', N'be,ru', 630336, N'PL,LT,UA,RU,LV', N'' UNION ALL SELECT N'BZ', N'BLZ', 84, N'BH', N'Belize', N'Belmopan', N'22966', 301000, N'NA', N'.bz', N'BZD', N'Dollar', N'501', N'', N'', N'en-BZ,es', 3582678, N'GT,MX', N'' UNION ALL SELECT N'CA', N'CAN', 124, N'CA', N'Canada', N'Ottawa', N'9984670', 33679000, N'NA', N'.ca', N'CAD', N'Dollar', N'1', N'@#@ #@#', N'^([a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d)$', N'en-CA,fr-CA', 6251999, N'US', N'' UNION ALL SELECT N'CC', N'CCK', 166, N'CK', N'Cocos Islands', N'West Island', N'14', 628, N'AS', N'.cc', N'AUD', N'Dollar', N'61', N'', N'', N'ms-CC,en', 1547376, N'', N'' UNION ALL SELECT N'CD', N'COD', 180, N'CG', N'Democratic Republic of the Congo', N'Kinshasa', N'2345410', 60085004, N'AF', N'.cd', N'CDF', N'Franc', N'243', N'', N'', N'fr-CD,ln,kg', 203312, N'TZ,CF,SD,RW,ZM,BI,UG,CG,AO', N'' UNION ALL SELECT N'CF', N'CAF', 140, N'CT', N'Central African Republic', N'Bangui', N'622984', 4434000, N'AF', N'.cf', N'XAF', N'Franc', N'236', N'', N'', N'fr-CF,ln,kg', 239880, N'TD,SD,CD,CM,CG', N'' UNION ALL SELECT N'CG', N'COG', 178, N'CF', N'Republic of the Congo', N'Brazzaville', N'342000', 3039126, N'AF', N'.cg', N'XAF', N'Franc', N'242', N'', N'', N'fr-CG,kg,ln-CG', 2260494, N'CF,GA,CD,CM,AO', N'' UNION ALL SELECT N'CH', N'CHE', 756, N'SZ', N'Switzerland', N'Berne', N'41290', 7581000, N'EU', N'.ch', N'CHF', N'Franc', N'41', N'####', N'^(\d{4})$', N'de-CH,fr-CH,it-CH,rm', 2658434, N'DE,IT,LI,FR,AT', N'' UNION ALL SELECT N'CI', N'CIV', 384, N'IV', N'Ivory Coast', N'Yamoussoukro', N'322460', 18373000, N'AF', N'.ci', N'XOF', N'Franc', N'225', N'', N'', N'fr-CI', 2287781, N'LR,GH,GN,BF,ML', N'' UNION ALL SELECT N'CK', N'COK', 184, N'CW', N'Cook Islands', N'Avarua', N'240', 21388, N'OC', N'.ck', N'NZD', N'Dollar', N'682', N'', N'', N'en-CK,mi', 1899402, N'', N'' UNION ALL SELECT N'CL', N'CHL', 152, N'CI', N'Chile', N'Santiago', N'756950', 16432000, N'SA', N'.cl', N'CLP', N'Peso', N'56', N'#######', N'^(\d{7})$', N'es-CL', 3895114, N'PE,BO,AR', N'' UNION ALL SELECT N'CM', N'CMR', 120, N'CM', N'Cameroon', N'Yaoundé', N'475440', 18467000, N'AF', N'.cm', N'XAF', N'Franc', N'237', N'', N'', N'en-CM,fr-CM', 2233387, N'TD,CF,GA,GQ,CG,NG', N'' UNION ALL SELECT N'CN', N'CHN', 156, N'CH', N'China', N'Beijing', N'9596960', 1330044000, N'AS', N'.cn', N'CNY', N'Yuan Renminbi', N'86', N'######', N'^(\d{6})$', N'zh-CN,yue,wuu', 1814991, N'LA,BT,TJ,KZ,MN,AF,NP,MM,KG,PK,KP,RU,VN,IN', N'' UNION ALL SELECT N'CO', N'COL', 170, N'CO', N'Colombia', N'Bogotá', N'1138910', 45013000, N'SA', N'.co', N'COP', N'Peso', N'57', N'', N'', N'es-CO', 3686110, N'EC,PE,PA,BR,VE', N'' UNION ALL SELECT N'CR', N'CRI', 188, N'CS', N'Costa Rica', N'San José', N'51100', 4191000, N'NA', N'.cr', N'CRC', N'Colon', N'506', N'####', N'^(\d{4})$', N'es-CR,en', 3624060, N'PA,NI', N'' COMMIT; RAISERROR (N'[dbo].[geonames]: Insert Batch: 1.....Done!', 10, 1) WITH NOWAIT; GO BEGIN TRANSACTION; INSERT INTO [dbo].[geonames]([ISO], [ISO3], [ISO-Numeric], [fips], [Country], [Capital], [Area(in sq km)], [Population], [Continent], [tld], [CurrencyCode], [CurrencyName], [Phone], [Postal Code Format], [Postal Code Regex], [Languages], [geonameid], [neighbours], [EquivalentFipsCode]) SELECT N'CS', N'SCG', 891, N'YI', N'Serbia and Montenegro', N'Belgrade', N'102350', 10829175, N'EU', N'.cs', N'RSD', N'Dinar', N'381', N'#####', N'^(\d{5})$', N'cu,hu,sq,sr', 863038, N'AL,HU,MK,RO,HR,BA,BG', N'' UNION ALL SELECT N'CU', N'CUB', 192, N'CU', N'Cuba', N'Havana', N'110860', 11423000, N'NA', N'.cu', N'CUP', N'Peso', N'53', N'CP #####', N'^(?:CP)*(\d{5})$', N'es-CU', 3562981, N'US', N'' UNION ALL SELECT N'CV', N'CPV', 132, N'CV', N'Cape Verde', N'Praia', N'4033', 426000, N'AF', N'.cv', N'CVE', N'Escudo', N'238', N'####', N'^(\d{4})$', N'pt-CV', 3374766, N'', N'' UNION ALL SELECT N'CX', N'CXR', 162, N'KT', N'Christmas Island', N'Flying Fish Cove', N'135', 361, N'AS', N'.cx', N'AUD', N'Dollar', N'61', N'####', N'^(\d{4})$', N'en,zh,ms-CC', 2078138, N'', N'' UNION ALL SELECT N'CY', N'CYP', 196, N'CY', N'Cyprus', N'Nicosia', N'9250', 792000, N'EU', N'.cy', N'EUR', N'Euro', N'357', N'####', N'^(\d{4})$', N'el-CY,tr-CY,en', 146669, N'', N'' UNION ALL SELECT N'CZ', N'CZE', 203, N'EZ', N'Czech Republic', N'Prague', N'78866', 10220000, N'EU', N'.cz', N'CZK', N'Koruna', N'420', N'### ##', N'^(\d{5})$', N'cs,sk', 3077311, N'PL,DE,SK,AT', N'' UNION ALL SELECT N'DE', N'DEU', 276, N'GM', N'Germany', N'Berlin', N'357021', 82369000, N'EU', N'.de', N'EUR', N'Euro', N'49', N'#####', N'^(\d{5})$', N'de', 2921044, N'CH,PL,NL,DK,BE,CZ,LU,FR,AT', N'' UNION ALL SELECT N'DJ', N'DJI', 262, N'DJ', N'Djibouti', N'Djibouti', N'23000', 506000, N'AF', N'.dj', N'DJF', N'Franc', N'253', N'', N'', N'fr-DJ,ar,so-DJ,aa', 223816, N'ER,ET,SO', N'' UNION ALL SELECT N'DK', N'DNK', 208, N'DA', N'Denmark', N'Copenhagen', N'43094', 5484000, N'EU', N'.dk', N'DKK', N'Krone', N'45', N'####', N'^(\d{4})$', N'da-DK,en,fo,de-DK', 2623032, N'DE', N'' UNION ALL SELECT N'DM', N'DMA', 212, N'DO', N'Dominica', N'Roseau', N'754', 72000, N'NA', N'.dm', N'XCD', N'Dollar', N'-766', N'', N'', N'en-DM', 3575830, N'', N'' UNION ALL SELECT N'DO', N'DOM', 214, N'DR', N'Dominican Republic', N'Santo Domingo', N'48730', 9507000, N'NA', N'.do', N'DOP', N'Peso', N'+1-809 and 1-829', N'#####', N'^(\d{5})$', N'es-DO', 3508796, N'HT', N'' UNION ALL SELECT N'DZ', N'DZA', 12, N'AG', N'Algeria', N'Algiers', N'2381740', 33739000, N'AF', N'.dz', N'DZD', N'Dinar', N'213', N'#####', N'^(\d{5})$', N'ar-DZ', 2589581, N'NE,EH,LY,MR,TN,MA,ML', N'' UNION ALL SELECT N'EC', N'ECU', 218, N'EC', N'Ecuador', N'Quito', N'283560', 13927000, N'SA', N'.ec', N'USD', N'Dollar', N'593', N'@####@', N'^([a-zA-Z]\d{4}[a-zA-Z])$', N'es-EC', 3658394, N'PE,CO', N'' UNION ALL SELECT N'EE', N'EST', 233, N'EN', N'Estonia', N'Tallinn', N'45226', 1307000, N'EU', N'.ee', N'EEK', N'Kroon', N'372', N'#####', N'^(\d{5})$', N'et,ru', 453733, N'RU,LV', N'' UNION ALL SELECT N'EG', N'EGY', 818, N'EG', N'Egypt', N'Cairo', N'1001450', 81713000, N'AF', N'.eg', N'EGP', N'Pound', N'20', N'#####', N'^(\d{5})$', N'ar-EG,en,fr', 357994, N'LY,SD,IL', N'' UNION ALL SELECT N'EH', N'ESH', 732, N'WI', N'Western Sahara', N'El-Aaiun', N'266000', 273008, N'AF', N'.eh', N'MAD', N'Dirham', N'212', N'', N'', N'ar,mey', 2461445, N'DZ,MR,MA', N'' UNION ALL SELECT N'ER', N'ERI', 232, N'ER', N'Eritrea', N'Asmara', N'121320', 5028000, N'AF', N'.er', N'ERN', N'Nakfa', N'291', N'', N'', N'aa-ER,ar,tig,kun,ti-ER', 338010, N'ET,SD,DJ', N'' UNION ALL SELECT N'ES', N'ESP', 724, N'SP', N'Spain', N'Madrid', N'504782', 40491000, N'EU', N'.es', N'EUR', N'Euro', N'34', N'#####', N'^(\d{5})$', N'es-ES,ca,gl,eu', 2510769, N'AD,PT,GI,FR,MA', N'' UNION ALL SELECT N'ET', N'ETH', 231, N'ET', N'Ethiopia', N'Addis Ababa', N'1127127', 78254000, N'AF', N'.et', N'ETB', N'Birr', N'251', N'####', N'^(\d{4})$', N'am,en-ET,om-ET,ti-ET,so-ET,sid', 337996, N'ER,KE,SD,SO,DJ', N'' UNION ALL SELECT N'FI', N'FIN', 246, N'FI', N'Finland', N'Helsinki', N'337030', 5244000, N'EU', N'.fi', N'EUR', N'Euro', N'358', N'FI-#####', N'^(?:FI)*(\d{5})$', N'fi-FI,sv-FI,smn', 660013, N'NO,RU,SE', N'' UNION ALL SELECT N'FJ', N'FJI', 242, N'FJ', N'Fiji', N'Suva', N'18270', 931000, N'OC', N'.fj', N'FJD', N'Dollar', N'679', N'', N'', N'en-FJ,fj', 2205218, N'', N'' UNION ALL SELECT N'FK', N'FLK', 238, N'FK', N'Falkland Islands', N'Stanley', N'12173', 2638, N'SA', N'.fk', N'FKP', N'Pound', N'500', N'', N'', N'en-FK', 3474414, N'', N'' UNION ALL SELECT N'FM', N'FSM', 583, N'FM', N'Micronesia', N'Palikir', N'702', 108105, N'OC', N'.fm', N'USD', N'Dollar', N'691', N'#####', N'^(\d{5})$', N'en-FM,chk,pon,yap,kos,uli,woe,nkr,kpg', 2081918, N'', N'' UNION ALL SELECT N'FO', N'FRO', 234, N'FO', N'Faroe Islands', N'Tórshavn', N'1399', 48228, N'EU', N'.fo', N'DKK', N'Krone', N'298', N'FO-###', N'^(?:FO)*(\d{3})$', N'fo,da-FO', 2622320, N'', N'' UNION ALL SELECT N'FR', N'FRA', 250, N'FR', N'France', N'Paris', N'547030', 64094000, N'EU', N'.fr', N'EUR', N'Euro', N'33', N'#####', N'^(\d{5})$', N'fr-FR,frp,br,co,ca,eu', 3017382, N'CH,DE,BE,LU,IT,AD,MC,ES', N'' UNION ALL SELECT N'GA', N'GAB', 266, N'GB', N'Gabon', N'Libreville', N'267667', 1484000, N'AF', N'.ga', N'XAF', N'Franc', N'241', N'', N'', N'fr-GA', 2400553, N'CM,GQ,CG', N'' UNION ALL SELECT N'GB', N'GBR', 826, N'UK', N'United Kingdom', N'London', N'244820', 60943000, N'EU', N'.uk', N'GBP', N'Pound', N'44', N'@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA', N'^(([A-Z]\d{2}[A-Z]{2})|([A-Z]\d{3}[A-Z]{2})|([A-Z]{2}\d{2}[A-Z]{2})|([A-Z]{2}\d{3}[A-Z]{2})|([A-Z]\d[A-Z]\d[A-Z]{2})|([A-Z]{2}\d[A-Z]\d[A-Z]{2})|(GIR0AA))$', N'en-GB,cy-GB,gd', 2635167, N'IE', N'' UNION ALL SELECT N'GD', N'GRD', 308, N'GJ', N'Grenada', N'St. George''s', N'344', 90000, N'NA', N'.gd', N'XCD', N'Dollar', N'-472', N'', N'', N'en-GD', 3580239, N'', N'' UNION ALL SELECT N'GE', N'GEO', 268, N'GG', N'Georgia', N'Tbilisi', N'69700', 4630000, N'AS', N'.ge', N'GEL', N'Lari', N'995', N'####', N'^(\d{4})$', N'ka,ru,hy,az', 614540, N'AM,AZ,TR,RU', N'' UNION ALL SELECT N'GF', N'GUF', 254, N'FG', N'French Guiana', N'Cayenne', N'91000', 195506, N'SA', N'.gf', N'EUR', N'Euro', N'594', N'#####', N'^((97)|(98)3\d{2})$', N'fr-GF', 3381670, N'SR,BR', N'' UNION ALL SELECT N'GG', N'GGY', 831, N'GK', N'Guernsey', N'St Peter Port', N'78', 65228, N'EU', N'.gg', N'GBP', N'Pound', N'-1437', N'@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA', N'^(([A-Z]\d{2}[A-Z]{2})|([A-Z]\d{3}[A-Z]{2})|([A-Z]{2}\d{2}[A-Z]{2})|([A-Z]{2}\d{3}[A-Z]{2})|([A-Z]\d[A-Z]\d[A-Z]{2})|([A-Z]{2}\d[A-Z]\d[A-Z]{2})|(GIR0AA))$', N'en,fr', 3042362, N'', N'' UNION ALL SELECT N'GH', N'GHA', 288, N'GH', N'Ghana', N'Accra', N'239460', 23382000, N'AF', N'.gh', N'GHS', N'Cedi', N'233', N'', N'', N'en-GH,ak,ee,tw', 2300660, N'CI,TG,BF', N'' UNION ALL SELECT N'GI', N'GIB', 292, N'GI', N'Gibraltar', N'Gibraltar', N'6.5', 27884, N'EU', N'.gi', N'GIP', N'Pound', N'350', N'', N'', N'en-GI,es,it,pt', 2411586, N'ES', N'' UNION ALL SELECT N'GL', N'GRL', 304, N'GL', N'Greenland', N'Nuuk', N'2166086', 56375, N'NA', N'.gl', N'DKK', N'Krone', N'299', N'####', N'^(\d{4})$', N'kl,da-GL,en', 3425505, N'', N'' UNION ALL SELECT N'GM', N'GMB', 270, N'GA', N'Gambia', N'Banjul', N'11300', 1593256, N'AF', N'.gm', N'GMD', N'Dalasi', N'220', N'', N'', N'en-GM,mnk,wof,wo,ff', 2413451, N'SN', N'' UNION ALL SELECT N'GN', N'GIN', 324, N'GV', N'Guinea', N'Conakry', N'245857', 10211000, N'AF', N'.gn', N'GNF', N'Franc', N'224', N'', N'', N'fr-GN', 2420477, N'LR,SN,SL,CI,GW,ML', N'' UNION ALL SELECT N'GP', N'GLP', 312, N'GP', N'Guadeloupe', N'Basse-Terre', N'1780', 443000, N'NA', N'.gp', N'EUR', N'Euro', N'590', N'#####', N'^((97)|(98)\d{3})$', N'fr-GP', 3579143, N'AN', N'' UNION ALL SELECT N'GQ', N'GNQ', 226, N'EK', N'Equatorial Guinea', N'Malabo', N'28051', 562000, N'AF', N'.gq', N'XAF', N'Franc', N'240', N'', N'', N'es-GQ,fr', 2309096, N'GA,CM', N'' UNION ALL SELECT N'GR', N'GRC', 300, N'GR', N'Greece', N'Athens', N'131940', 10722000, N'EU', N'.gr', N'EUR', N'Euro', N'30', N'### ##', N'^(\d{5})$', N'el-GR,en,fr', 390903, N'AL,MK,TR,BG', N'' UNION ALL SELECT N'GS', N'SGS', 239, N'SX', N'South Georgia and the South Sandwich Islands', N'Grytviken', N'3903', 100, N'AN', N'.gs', N'GBP', N'Pound', N'', N'', N'', N'en', 3474415, N'', N'' UNION ALL SELECT N'GT', N'GTM', 320, N'GT', N'Guatemala', N'Guatemala City', N'108890', 13002000, N'NA', N'.gt', N'GTQ', N'Quetzal', N'502', N'#####', N'^(\d{5})$', N'es-GT', 3595528, N'MX,HN,BZ,SV', N'' UNION ALL SELECT N'GU', N'GUM', 316, N'GQ', N'Guam', N'Hagåtña', N'549', 168564, N'OC', N'.gu', N'USD', N'Dollar', N'-670', N'969##', N'^(969\d{2})$', N'en-GU,ch-GU', 4043988, N'', N'' UNION ALL SELECT N'GW', N'GNB', 624, N'PU', N'Guinea-Bissau', N'Bissau', N'36120', 1503000, N'AF', N'.gw', N'XOF', N'Franc', N'245', N'####', N'^(\d{4})$', N'pt-GW,pov', 2372248, N'SN,GN', N'' UNION ALL SELECT N'GY', N'GUY', 328, N'GY', N'Guyana', N'Georgetown', N'214970', 770000, N'SA', N'.gy', N'GYD', N'Dollar', N'592', N'', N'', N'en-GY', 3378535, N'SR,BR,VE', N'' UNION ALL SELECT N'HK', N'HKG', 344, N'HK', N'Hong Kong', N'Hong Kong', N'1092', 6898686, N'AS', N'.hk', N'HKD', N'Dollar', N'852', N'', N'', N'zh-HK,yue,zh,en', 1819730, N'', N'' UNION ALL SELECT N'HM', N'HMD', 334, N'HM', N'Heard Island and McDonald Islands', N'', N'412', 0, N'AN', N'.hm', N'AUD', N'Dollar', N' ', N'', N'', N'', 1547314, N'', N'' UNION ALL SELECT N'HN', N'HND', 340, N'HO', N'Honduras', N'Tegucigalpa', N'112090', 7639000, N'NA', N'.hn', N'HNL', N'Lempira', N'504', N'@@####', N'^([A-Z]{2}\d{4})$', N'es-HN', 3608932, N'GT,NI,SV', N'' UNION ALL SELECT N'HR', N'HRV', 191, N'HR', N'Croatia', N'Zagreb', N'56542', 4491000, N'EU', N'.hr', N'HRK', N'Kuna', N'385', N'HR-#####', N'^(?:HR)*(\d{5})$', N'hr-HR,sr', 3202326, N'HU,SI,CS,BA,ME,RS', N'' UNION ALL SELECT N'HT', N'HTI', 332, N'HA', N'Haiti', N'Port-au-Prince', N'27750', 8924000, N'NA', N'.ht', N'HTG', N'Gourde', N'509', N'HT####', N'^(?:HT)*(\d{4})$', N'ht,fr-HT', 3723988, N'DO', N'' UNION ALL SELECT N'HU', N'HUN', 348, N'HU', N'Hungary', N'Budapest', N'93030', 9930000, N'EU', N'.hu', N'HUF', N'Forint', N'36', N'####', N'^(\d{4})$', N'hu-HU', 719819, N'SK,SI,RO,UA,CS,HR,AT,RS', N'' COMMIT; RAISERROR (N'[dbo].[geonames]: Insert Batch: 2.....Done!', 10, 1) WITH NOWAIT; GO BEGIN TRANSACTION; INSERT INTO [dbo].[geonames]([ISO], [ISO3], [ISO-Numeric], [fips], [Country], [Capital], [Area(in sq km)], [Population], [Continent], [tld], [CurrencyCode], [CurrencyName], [Phone], [Postal Code Format], [Postal Code Regex], [Languages], [geonameid], [neighbours], [EquivalentFipsCode]) SELECT N'ID', N'IDN', 360, N'ID', N'Indonesia', N'Jakarta', N'1919440', 237512000, N'AS', N'.id', N'IDR', N'Rupiah', N'62', N'#####', N'^(\d{5})$', N'id,en,nl,jv', 1643084, N'PG,TL,MY', N'' UNION ALL SELECT N'IE', N'IRL', 372, N'EI', N'Ireland', N'Dublin', N'70280', 4156000, N'EU', N'.ie', N'EUR', N'Euro', N'353', N'', N'', N'en-IE,ga-IE', 2963597, N'GB', N'' UNION ALL SELECT N'IL', N'ISR', 376, N'IS', N'Israel', N'Jerusalem', N'20770', 6500000, N'AS', N'.il', N'ILS', N'Shekel', N'972', N'#####', N'^(\d{5})$', N'he,ar-IL,en-IL,', 294640, N'SY,JO,LB,EG,PS', N'' UNION ALL SELECT N'IM', N'IMN', 833, N'IM', N'Isle of Man', N'Douglas, Isle of Man', N'572', 75049, N'EU', N'.im', N'GBP', N'Pound', N'-1580', N'@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA', N'^(([A-Z]\d{2}[A-Z]{2})|([A-Z]\d{3}[A-Z]{2})|([A-Z]{2}\d{2}[A-Z]{2})|([A-Z]{2}\d{3}[A-Z]{2})|([A-Z]\d[A-Z]\d[A-Z]{2})|([A-Z]{2}\d[A-Z]\d[A-Z]{2})|(GIR0AA))$', N'en,gv', 3042225, N'', N'' UNION ALL SELECT N'IN', N'IND', 356, N'IN', N'India', N'New Delhi', N'3287590', 1147995000, N'AS', N'.in', N'INR', N'Rupee', N'91', N'######', N'^(\d{6})$', N'en-IN,hi,bn,te,mr,ta,ur,gu,ml,kn,or,pa,as,ks,sd,sa,ur-IN', 1269750, N'CN,NP,MM,BT,PK,BD', N'' UNION ALL SELECT N'IO', N'IOT', 86, N'IO', N'British Indian Ocean Territory', N'Diego Garcia', N'60', 0, N'AS', N'.io', N'USD', N'Dollar', N'246', N'', N'', N'en-IO', 1282588, N'', N'' UNION ALL SELECT N'IQ', N'IRQ', 368, N'IZ', N'Iraq', N'Baghdad', N'437072', 28221000, N'AS', N'.iq', N'IQD', N'Dinar', N'964', N'#####', N'^(\d{5})$', N'ar-IQ,ku,hy', 99237, N'SY,SA,IR,JO,TR,KW', N'' UNION ALL SELECT N'IR', N'IRN', 364, N'IR', N'Iran', N'Tehran', N'1648000', 65875000, N'AS', N'.ir', N'IRR', N'Rial', N'98', N'##########', N'^(\d{10})$', N'fa-IR,ku', 130758, N'TM,AF,IQ,AM,PK,AZ,TR', N'' UNION ALL SELECT N'IS', N'ISL', 352, N'IC', N'Iceland', N'Reykjavík', N'103000', 304000, N'EU', N'.is', N'ISK', N'Krona', N'354', N'###', N'^(\d{3})$', N'is,en,de,da,sv,no', 2629691, N'', N'' UNION ALL SELECT N'IT', N'ITA', 380, N'IT', N'Italy', N'Rome', N'301230', 58145000, N'EU', N'.it', N'EUR', N'Euro', N'39', N'####', N'^(\d{5})$', N'it-IT,de-IT,fr-IT,sl', 3175395, N'CH,VA,SI,SM,FR,AT', N'' UNION ALL SELECT N'JE', N'JEY', 832, N'JE', N'Jersey', N'Saint Helier', N'116', 90812, N'EU', N'.je', N'GBP', N'Pound', N'-1490', N'@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA', N'^(([A-Z]\d{2}[A-Z]{2})|([A-Z]\d{3}[A-Z]{2})|([A-Z]{2}\d{2}[A-Z]{2})|([A-Z]{2}\d{3}[A-Z]{2})|([A-Z]\d[A-Z]\d[A-Z]{2})|([A-Z]{2}\d[A-Z]\d[A-Z]{2})|(GIR0AA))$', N'en,pt', 3042142, N'', N'' UNION ALL SELECT N'JM', N'JAM', 388, N'JM', N'Jamaica', N'Kingston', N'10991', 2801000, N'NA', N'.jm', N'JMD', N'Dollar', N'-875', N'', N'', N'en-JM', 3489940, N'', N'' UNION ALL SELECT N'JO', N'JOR', 400, N'JO', N'Jordan', N'Amman', N'92300', 6198000, N'AS', N'.jo', N'JOD', N'Dinar', N'962', N'#####', N'^(\d{5})$', N'ar-JO,en', 248816, N'SY,SA,IQ,IL,PS', N'' UNION ALL SELECT N'JP', N'JPN', 392, N'JA', N'Japan', N'Tokyo', N'377835', 127288000, N'AS', N'.jp', N'JPY', N'Yen', N'81', N'###-####', N'^(\d{7})$', N'ja', 1861060, N'', N'' UNION ALL SELECT N'KE', N'KEN', 404, N'KE', N'Kenya', N'Nairobi', N'582650', 37953000, N'AF', N'.ke', N'KES', N'Shilling', N'254', N'#####', N'^(\d{5})$', N'en-KE,sw-KE', 192950, N'ET,TZ,SD,SO,UG', N'' UNION ALL SELECT N'KG', N'KGZ', 417, N'KG', N'Kyrgyzstan', N'Bishkek', N'198500', 5356000, N'AS', N'.kg', N'KGS', N'Som', N'996', N'######', N'^(\d{6})$', N'ky,uz,ru', 1527747, N'CN,TJ,UZ,KZ', N'' UNION ALL SELECT N'KH', N'KHM', 116, N'CB', N'Cambodia', N'Phnom Penh', N'181040', 14241000, N'AS', N'.kh', N'KHR', N'Riels', N'855', N'#####', N'^(\d{5})$', N'km,fr,en', 1831722, N'LA,TH,VN', N'' UNION ALL SELECT N'KI', N'KIR', 296, N'KR', N'Kiribati', N'South Tarawa', N'811', 110000, N'OC', N'.ki', N'AUD', N'Dollar', N'686', N'', N'', N'en-KI,gil', 4030945, N'', N'' UNION ALL SELECT N'KM', N'COM', 174, N'CN', N'Comoros', N'Moroni', N'2170', 731000, N'AF', N'.km', N'KMF', N'Franc', N'269', N'', N'', N'ar,fr-KM', 921929, N'', N'' UNION ALL SELECT N'KN', N'KNA', 659, N'SC', N'Saint Kitts and Nevis', N'Basseterre', N'261', 39000, N'NA', N'.kn', N'XCD', N'Dollar', N'-868', N'', N'', N'en-KN', 3575174, N'', N'' UNION ALL SELECT N'KP', N'PRK', 408, N'KN', N'North Korea', N'Pyongyang', N'120540', 22912177, N'AS', N'.kp', N'KPW', N'Won', N'850', N'###-###', N'^(\d{6})$', N'ko-KP', 1873107, N'CN,KR,RU', N'' UNION ALL SELECT N'KR', N'KOR', 410, N'KS', N'South Korea', N'Seoul', N'98480', 48422644, N'AS', N'.kr', N'KRW', N'Won', N'82', N'SEOUL ###-###', N'^(?:SEOUL)*(\d{6})$', N'ko-KR,en', 1835841, N'KP', N'' UNION ALL SELECT N'KW', N'KWT', 414, N'KU', N'Kuwait', N'Kuwait City', N'17820', 2596000, N'AS', N'.kw', N'KWD', N'Dinar', N'965', N'#####', N'^(\d{5})$', N'ar-KW,en', 285570, N'SA,IQ', N'' UNION ALL SELECT N'KY', N'CYM', 136, N'CJ', N'Cayman Islands', N'George Town', N'262', 44270, N'NA', N'.ky', N'KYD', N'Dollar', N'-344', N'', N'', N'en-KY', 3580718, N'', N'' UNION ALL SELECT N'KZ', N'KAZ', 398, N'KZ', N'Kazakhstan', N'Astana', N'2717300', 15340000, N'AS', N'.kz', N'KZT', N'Tenge', N'7', N'######', N'^(\d{6})$', N'kk,ru', 1522867, N'TM,CN,KG,UZ,RU', N'' UNION ALL SELECT N'LA', N'LAO', 418, N'LA', N'Laos', N'Vientiane', N'236800', 6677000, N'AS', N'.la', N'LAK', N'Kip', N'856', N'#####', N'^(\d{5})$', N'lo,fr,en', 1655842, N'CN,MM,KH,TH,VN', N'' UNION ALL SELECT N'LB', N'LBN', 422, N'LE', N'Lebanon', N'Beirut', N'10400', 3971000, N'AS', N'.lb', N'LBP', N'Pound', N'961', N'#### ####|####', N'^(\d{4}(\d{4})?)$', N'ar-LB,fr-LB,en,hy', 272103, N'SY,IL', N'' UNION ALL SELECT N'LC', N'LCA', 662, N'ST', N'Saint Lucia', N'Castries', N'616', 172000, N'NA', N'.lc', N'XCD', N'Dollar', N'-757', N'', N'', N'en-LC', 3576468, N'', N'' UNION ALL SELECT N'LI', N'LIE', 438, N'LS', N'Liechtenstein', N'Vaduz', N'160', 34000, N'EU', N'.li', N'CHF', N'Franc', N'423', N'####', N'^(\d{4})$', N'de-LI', 3042058, N'CH,AT', N'' UNION ALL SELECT N'LK', N'LKA', 144, N'CE', N'Sri Lanka', N'Colombo', N'65610', 21128000, N'AS', N'.lk', N'LKR', N'Rupee', N'94', N'#####', N'^(\d{5})$', N'si,ta,en', 1227603, N'', N'' UNION ALL SELECT N'LR', N'LBR', 430, N'LI', N'Liberia', N'Monrovia', N'111370', 3334000, N'AF', N'.lr', N'LRD', N'Dollar', N'231', N'####', N'^(\d{4})$', N'en-LR', 2275384, N'SL,CI,GN', N'' UNION ALL SELECT N'LS', N'LSO', 426, N'LT', N'Lesotho', N'Maseru', N'30355', 2128000, N'AF', N'.ls', N'LSL', N'Loti', N'266', N'###', N'^(\d{3})$', N'en-LS,st,zu,xh', 932692, N'ZA', N'' UNION ALL SELECT N'LT', N'LTU', 440, N'LH', N'Lithuania', N'Vilnius', N'65200', 3565000, N'EU', N'.lt', N'LTL', N'Litas', N'370', N'LT-#####', N'^(?:LT)*(\d{5})$', N'lt,ru,pl', 597427, N'PL,BY,RU,LV', N'' UNION ALL SELECT N'LU', N'LUX', 442, N'LU', N'Luxembourg', N'Luxembourg', N'2586', 486000, N'EU', N'.lu', N'EUR', N'Euro', N'352', N'####', N'^(\d{4})$', N'lb,de-LU,fr-LU', 2960313, N'DE,BE,FR', N'' UNION ALL SELECT N'LV', N'LVA', 428, N'LG', N'Latvia', N'Riga', N'64589', 2245000, N'EU', N'.lv', N'LVL', N'Lat', N'371', N'LV-####', N'^(?:LV)*(\d{4})$', N'lv,ru,lt', 458258, N'LT,EE,BY,RU', N'' UNION ALL SELECT N'LY', N'LBY', 434, N'LY', N'Libya', N'Tripolis', N'1759540', 6173000, N'AF', N'.ly', N'LYD', N'Dinar', N'218', N'', N'', N'ar-LY,it,en', 2215636, N'TD,NE,DZ,SD,TN,EG', N'' UNION ALL SELECT N'MA', N'MAR', 504, N'MO', N'Morocco', N'Rabat', N'446550', 34272000, N'AF', N'.ma', N'MAD', N'Dirham', N'212', N'#####', N'^(\d{5})$', N'ar-MA,fr', 2542007, N'DZ,EH,ES', N'' UNION ALL SELECT N'MC', N'MCO', 492, N'MN', N'Monaco', N'Monaco', N'1.95', 32000, N'EU', N'.mc', N'EUR', N'Euro', N'377', N'#####', N'^(\d{5})$', N'fr-MC,en,it', 2993457, N'FR', N'' UNION ALL SELECT N'MD', N'MDA', 498, N'MD', N'Moldova', N'Chis,ina(u', N'33843', 4324000, N'EU', N'.md', N'MDL', N'Leu', N'373', N'MD-####', N'^(?:MD)*(\d{4})$', N'ro,ru,gag,tr', 617790, N'RO,UA', N'' UNION ALL SELECT N'ME', N'MNE', 499, N'MJ', N'Montenegro', N'Podgorica', N'14026', 678000, N'EU', N'.cs', N'EUR', N'Euro', N'381', N'#####', N'^(\d{5})$', N'sr,hu,bs,sq,hr,rom', 3194884, N'AL,HR,BA,RS', N'' UNION ALL SELECT N'MF', N'MAF', 663, N'RN', N'Saint Martin', N'Marigot', N'53', 33100, N'NA', N'.gp', N'EUR', N'Euro', N'590', N'### ###', N'', N'fr', 3578421, N'', N'' UNION ALL SELECT N'MG', N'MDG', 450, N'MA', N'Madagascar', N'Antananarivo', N'587040', 20042000, N'AF', N'.mg', N'MGA', N'Ariary', N'261', N'###', N'^(\d{3})$', N'fr-MG,mg', 1062947, N'', N'' UNION ALL SELECT N'MH', N'MHL', 584, N'RM', N'Marshall Islands', N'Uliga', N'181.3', 11628, N'OC', N'.mh', N'USD', N'Dollar', N'692', N'', N'', N'mh,en-MH', 2080185, N'', N'' UNION ALL SELECT N'MK', N'MKD', 807, N'MK', N'Macedonia', N'Skopje', N'25333', 2061000, N'EU', N'.mk', N'MKD', N'Denar', N'389', N'####', N'^(\d{4})$', N'mk,sq,tr,rmm,sr', 718075, N'AL,GR,CS,BG,RS', N'' UNION ALL SELECT N'ML', N'MLI', 466, N'ML', N'Mali', N'Bamako', N'1240000', 12324000, N'AF', N'.ml', N'XOF', N'Franc', N'223', N'', N'', N'fr-ML,bm', 2453866, N'SN,NE,DZ,CI,GN,MR,BF', N'' UNION ALL SELECT N'MM', N'MMR', 104, N'BM', N'Myanmar', N'Yangon', N'678500', 47758000, N'AS', N'.mm', N'MMK', N'Kyat', N'95', N'#####', N'^(\d{5})$', N'my', 1327865, N'CN,LA,TH,BD,IN', N'' UNION ALL SELECT N'MN', N'MNG', 496, N'MG', N'Mongolia', N'Ulan Bator', N'1565000', 2996000, N'AS', N'.mn', N'MNT', N'Tugrik', N'976', N'######', N'^(\d{6})$', N'mn,ru', 2029969, N'CN,RU', N'' UNION ALL SELECT N'MO', N'MAC', 446, N'MC', N'Macao', N'Macao', N'254', 449198, N'AS', N'.mo', N'MOP', N'Pataca', N'853', N'', N'', N'zh,zh-MO', 1821275, N'', N'' UNION ALL SELECT N'MP', N'MNP', 580, N'CQ', N'Northern Mariana Islands', N'Saipan', N'477', 80362, N'OC', N'.mp', N'USD', N'Dollar', N'-669', N'', N'', N'fil,tl,zh,ch-MP,en-MP', 4041467, N'', N'' UNION ALL SELECT N'MQ', N'MTQ', 474, N'MB', N'Martinique', N'Fort-de-France', N'1100', 432900, N'NA', N'.mq', N'EUR', N'Euro', N'596', N'#####', N'^(\d{5})$', N'fr-MQ', 3570311, N'', N'' COMMIT; RAISERROR (N'[dbo].[geonames]: Insert Batch: 3.....Done!', 10, 1) WITH NOWAIT; GO BEGIN TRANSACTION; INSERT INTO [dbo].[geonames]([ISO], [ISO3], [ISO-Numeric], [fips], [Country], [Capital], [Area(in sq km)], [Population], [Continent], [tld], [CurrencyCode], [CurrencyName], [Phone], [Postal Code Format], [Postal Code Regex], [Languages], [geonameid], [neighbours], [EquivalentFipsCode]) SELECT N'MR', N'MRT', 478, N'MR', N'Mauritania', N'Nouakchott', N'1030700', 3364000, N'AF', N'.mr', N'MRO', N'Ouguiya', N'222', N'', N'', N'ar-MR,fuc,snk,fr,mey,wo', 2378080, N'SN,DZ,EH,ML', N'' UNION ALL SELECT N'MS', N'MSR', 500, N'MH', N'Montserrat', N'Plymouth', N'102', 9341, N'NA', N'.ms', N'XCD', N'Dollar', N'-663', N'', N'', N'en-MS', 3578097, N'', N'' UNION ALL SELECT N'MT', N'MLT', 470, N'MT', N'Malta', N'Valletta', N'316', 403000, N'EU', N'.mt', N'EUR', N'Euro', N'356', N'@@@ ###|@@@ ##', N'^([A-Z]{3}\d{2}\d?)$', N'mt,en-MT', 2562770, N'', N'' UNION ALL SELECT N'MU', N'MUS', 480, N'MP', N'Mauritius', N'Port Louis', N'2040', 1260000, N'AF', N'.mu', N'MUR', N'Rupee', N'230', N'', N'', N'en-MU,bho,fr', 934292, N'', N'' UNION ALL SELECT N'MV', N'MDV', 462, N'MV', N'Maldives', N'Malé', N'300', 379000, N'AS', N'.mv', N'MVR', N'Rufiyaa', N'960', N'#####', N'^(\d{5})$', N'dv,en', 1282028, N'', N'' UNION ALL SELECT N'MW', N'MWI', 454, N'MI', N'Malawi', N'Lilongwe', N'118480', 13931000, N'AF', N'.mw', N'MWK', N'Kwacha', N'265', N'', N'', N'ny,yao,tum,swk', 927384, N'TZ,MZ,ZM', N'' UNION ALL SELECT N'MX', N'MEX', 484, N'MX', N'Mexico', N'Mexico City', N'1972550', 109955000, N'NA', N'.mx', N'MXN', N'Peso', N'52', N'#####', N'^(\d{5})$', N'es-MX', 3996063, N'GT,US,BZ', N'' UNION ALL SELECT N'MY', N'MYS', 458, N'MY', N'Malaysia', N'Kuala Lumpur', N'329750', 25259000, N'AS', N'.my', N'MYR', N'Ringgit', N'60', N'#####', N'^(\d{5})$', N'ms-MY,en,zh,ta,te,ml,pa,th', 1733045, N'BN,TH,ID', N'' UNION ALL SELECT N'MZ', N'MOZ', 508, N'MZ', N'Mozambique', N'Maputo', N'801590', 21284000, N'AF', N'.mz', N'MZN', N'Meticail', N'258', N'####', N'^(\d{4})$', N'pt-MZ,vmw', 1036973, N'ZW,TZ,SZ,ZA,ZM,MW', N'' UNION ALL SELECT N'NA', N'NAM', 516, N'WA', N'Namibia', N'Windhoek', N'825418', 2063000, N'AF', N'.na', N'NAD', N'Dollar', N'264', N'', N'', N'en-NA,af,de,hz,naq', 3355338, N'ZA,BW,ZM,AO', N'' UNION ALL SELECT N'NC', N'NCL', 540, N'NC', N'New Caledonia', N'Nouméa', N'19060', 216494, N'OC', N'.nc', N'XPF', N'Franc', N'687', N'#####', N'^(\d{5})$', N'fr-NC', 2139685, N'', N'' UNION ALL SELECT N'NE', N'NER', 562, N'NG', N'Niger', N'Niamey', N'1267000', 13272000, N'AF', N'.ne', N'XOF', N'Franc', N'227', N'####', N'^(\d{4})$', N'fr-NE,ha,kr,dje', 2440476, N'TD,BJ,DZ,LY,BF,NG,ML', N'' UNION ALL SELECT N'NF', N'NFK', 574, N'NF', N'Norfolk Island', N'Kingston', N'34.6', 1828, N'OC', N'.nf', N'AUD', N'Dollar', N'672', N'', N'', N'en-NF', 2155115, N'', N'' UNION ALL SELECT N'NG', N'NGA', 566, N'NI', N'Nigeria', N'Abuja', N'923768', 138283000, N'AF', N'.ng', N'NGN', N'Naira', N'234', N'######', N'^(\d{6})$', N'en-NG,ha,yo,ig,ff', 2328926, N'TD,NE,BJ,CM', N'' UNION ALL SELECT N'NI', N'NIC', 558, N'NU', N'Nicaragua', N'Managua', N'129494', 5780000, N'NA', N'.ni', N'NIO', N'Cordoba', N'505', N'###-###-#', N'^(\d{7})$', N'es-NI,en', 3617476, N'CR,HN', N'' UNION ALL SELECT N'NL', N'NLD', 528, N'NL', N'Netherlands', N'Amsterdam', N'41526', 16645000, N'EU', N'.nl', N'EUR', N'Euro', N'31', N'#### @@', N'^(\d{4}[A-Z]{2})$', N'nl-NL,fy-NL', 2750405, N'DE,BE', N'' UNION ALL SELECT N'NO', N'NOR', 578, N'NO', N'Norway', N'Oslo', N'324220', 4644000, N'EU', N'.no', N'NOK', N'Krone', N'47', N'####', N'^(\d{4})$', N'no,nb,nn', 3144096, N'FI,RU,SE', N'' UNION ALL SELECT N'NP', N'NPL', 524, N'NP', N'Nepal', N'Kathmandu', N'140800', 29519000, N'AS', N'.np', N'NPR', N'Rupee', N'977', N'#####', N'^(\d{5})$', N'ne,en', 1282988, N'CN,IN', N'' UNION ALL SELECT N'NR', N'NRU', 520, N'NR', N'Nauru', N'Yaren', N'21', 13000, N'OC', N'.nr', N'AUD', N'Dollar', N'674', N'', N'', N'na,en-NR', 2110425, N'', N'' UNION ALL SELECT N'NU', N'NIU', 570, N'NE', N'Niue', N'Alofi', N'260', 2166, N'OC', N'.nu', N'NZD', N'Dollar', N'683', N'', N'', N'niu,en-NU', 4036232, N'', N'' UNION ALL SELECT N'NZ', N'NZL', 554, N'NZ', N'New Zealand', N'Wellington', N'268680', 4154000, N'OC', N'.nz', N'NZD', N'Dollar', N'64', N'####', N'^(\d{4})$', N'en-NZ,mi', 2186224, N'', N'' UNION ALL SELECT N'OM', N'OMN', 512, N'MU', N'Oman', N'Muscat', N'212460', 3309000, N'AS', N'.om', N'OMR', N'Rial', N'968', N'###', N'^(\d{3})$', N'ar-OM,en,bal,ur', 286963, N'SA,YE,AE', N'' UNION ALL SELECT N'PA', N'PAN', 591, N'PM', N'Panama', N'Panama City', N'78200', 3292000, N'NA', N'.pa', N'PAB', N'Balboa', N'507', N'', N'', N'es-PA,en', 3703430, N'CR,CO', N'' UNION ALL SELECT N'PE', N'PER', 604, N'PE', N'Peru', N'Lima', N'1285220', 29041000, N'SA', N'.pe', N'PEN', N'Sol', N'51', N'', N'', N'es-PE,qu,ay', 3932488, N'EC,CL,BO,BR,CO', N'' UNION ALL SELECT N'PF', N'PYF', 258, N'FP', N'French Polynesia', N'Papeete', N'4167', 270485, N'OC', N'.pf', N'XPF', N'Franc', N'689', N'#####', N'^((97)|(98)7\d{2})$', N'fr-PF,ty', 4020092, N'', N'' UNION ALL SELECT N'PG', N'PNG', 598, N'PP', N'Papua New Guinea', N'Port Moresby', N'462840', 5921000, N'OC', N'.pg', N'PGK', N'Kina', N'675', N'###', N'^(\d{3})$', N'en-PG,ho,meu,tpi', 2088628, N'ID', N'' UNION ALL SELECT N'PH', N'PHL', 608, N'RP', N'Philippines', N'Manila', N'300000', 92681000, N'AS', N'.ph', N'PHP', N'Peso', N'63', N'####', N'^(\d{4})$', N'tl,en-PH,fil', 1694008, N'', N'' UNION ALL SELECT N'PK', N'PAK', 586, N'PK', N'Pakistan', N'Islamabad', N'803940', 167762000, N'AS', N'.pk', N'PKR', N'Rupee', N'92', N'#####', N'^(\d{5})$', N'ur-PK,en-PK,pa,sd,ps,brh', 1168579, N'CN,AF,IR,IN', N'' UNION ALL SELECT N'PL', N'POL', 616, N'PL', N'Poland', N'Warsaw', N'312685', 38500000, N'EU', N'.pl', N'PLN', N'Zloty', N'48', N'##-###', N'^(\d{5})$', N'pl', 798544, N'DE,LT,SK,CZ,BY,UA,RU', N'' UNION ALL SELECT N'PM', N'SPM', 666, N'SB', N'Saint Pierre and Miquelon', N'Saint-Pierre', N'242', 7012, N'NA', N'.pm', N'EUR', N'Euro', N'508', N'', N'', N'fr-PM', 3424932, N'', N'' UNION ALL SELECT N'PN', N'PCN', 612, N'PC', N'Pitcairn', N'Adamstown', N'47', 46, N'OC', N'.pn', N'NZD', N'Dollar', N'', N'', N'', N'en-PN', 4030699, N'', N'' UNION ALL SELECT N'PR', N'PRI', 630, N'RQ', N'Puerto Rico', N'San Juan', N'9104', 3916632, N'NA', N'.pr', N'USD', N'Dollar', N'+1-787 and 1-939', N'#####-####', N'^(\d{9})$', N'en-PR,es-PR', 4566966, N'', N'' UNION ALL SELECT N'PS', N'PSE', 275, N'WE', N'Palestinian Territory', N'East Jerusalem', N'5970', 3800000, N'AS', N'.ps', N'ILS', N'Shekel', N'970', N'', N'', N'ar-PS', 6254930, N'JO,IL', N'' UNION ALL SELECT N'PT', N'PRT', 620, N'PO', N'Portugal', N'Lisbon', N'92391', 10676000, N'EU', N'.pt', N'EUR', N'Euro', N'351', N'####-###', N'^(\d{7})$', N'pt-PT,mwl', 2264397, N'ES', N'' UNION ALL SELECT N'PW', N'PLW', 585, N'PS', N'Palau', N'Koror', N'458', 20303, N'OC', N'.pw', N'USD', N'Dollar', N'680', N'96940', N'^(96940)$', N'pau,sov,en-PW,tox,ja,fil,zh', 1559582, N'', N'' UNION ALL SELECT N'PY', N'PRY', 600, N'PA', N'Paraguay', N'Asunción', N'406750', 6831000, N'SA', N'.py', N'PYG', N'Guarani', N'595', N'####', N'^(\d{4})$', N'es-PY,gn', 3437598, N'BO,BR,AR', N'' UNION ALL SELECT N'QA', N'QAT', 634, N'QA', N'Qatar', N'Doha', N'11437', 928000, N'AS', N'.qa', N'QAR', N'Rial', N'974', N'', N'', N'ar-QA,es', 289688, N'SA', N'' UNION ALL SELECT N'RE', N'REU', 638, N'RE', N'Reunion', N'Saint-Denis', N'2517', 776948, N'AF', N'.re', N'EUR', N'Euro', N'262', N'#####', N'^((97)|(98)(4|7|8)\d{2})$', N'fr-RE', 935317, N'', N'' UNION ALL SELECT N'RO', N'ROU', 642, N'RO', N'Romania', N'Bucharest', N'237500', 22246000, N'EU', N'.ro', N'RON', N'Leu', N'40', N'######', N'^(\d{6})$', N'ro,hu,rom', 798549, N'MD,HU,UA,CS,BG,RS', N'' UNION ALL SELECT N'RS', N'SRB', 688, N'RB', N'Serbia', N'Belgrade', N'88361', 10159000, N'EU', N'.rs', N'RSD', N'Dinar', N'381', N'######', N'^(\d{6})$', N'sr,hu,bs,rom', 6290252, N'AL,HU,MK,RO,HR,BA,BG,ME', N'' UNION ALL SELECT N'RU', N'RUS', 643, N'RS', N'Russia', N'Moscow', N'1.71E+07', 140702000, N'EU', N'.ru', N'RUB', N'Ruble', N'7', N'######', N'^(\d{6})$', N'ru-RU', 2017370, N'GE,CN,BY,UA,KZ,LV,PL,EE,LT,FI,MN,NO,AZ,KP', N'' UNION ALL SELECT N'RW', N'RWA', 646, N'RW', N'Rwanda', N'Kigali', N'26338', 10186000, N'AF', N'.rw', N'RWF', N'Franc', N'250', N'', N'', N'rw,en-RW,fr-RW,sw', 49518, N'TZ,CD,BI,UG', N'' UNION ALL SELECT N'SA', N'SAU', 682, N'SA', N'Saudi Arabia', N'Riyadh', N'1960582', 28161000, N'AS', N'.sa', N'SAR', N'Rial', N'966', N'#####', N'^(\d{5})$', N'ar-SA', 102358, N'QA,OM,IQ,YE,JO,AE,KW', N'' UNION ALL SELECT N'SB', N'SLB', 90, N'BP', N'Solomon Islands', N'Honiara', N'28450', 581000, N'OC', N'.sb', N'SBD', N'Dollar', N'677', N'', N'', N'en-SB,tpi', 2103350, N'', N'' UNION ALL SELECT N'SC', N'SYC', 690, N'SE', N'Seychelles', N'Victoria', N'455', 82000, N'AF', N'.sc', N'SCR', N'Rupee', N'248', N'', N'', N'en-SC,fr-SC', 241170, N'', N'' UNION ALL SELECT N'SD', N'SDN', 736, N'SU', N'Sudan', N'Khartoum', N'2505810', 40218000, N'AF', N'.sd', N'SDG', N'Dinar', N'249', N'#####', N'^(\d{5})$', N'ar-SD,en,fia', 366755, N'TD,ER,ET,LY,KE,CF,CD,UG,EG', N'' UNION ALL SELECT N'SE', N'SWE', 752, N'SW', N'Sweden', N'Stockholm', N'449964', 9045000, N'EU', N'.se', N'SEK', N'Krona', N'46', N'SE-### ##', N'^(?:SE)*(\d{5})$', N'sv-SE,se,sma,fi-SE', 2661886, N'NO,FI', N'' UNION ALL SELECT N'SG', N'SGP', 702, N'SN', N'Singapore', N'Singapur', N'692.7', 4608000, N'AS', N'.sg', N'SGD', N'Dollar', N'65', N'######', N'^(\d{6})$', N'cmn,en-SG,ms-SG,ta-SG,zh-SG', 1880251, N'', N'' UNION ALL SELECT N'SH', N'SHN', 654, N'SH', N'Saint Helena', N'Jamestown', N'410', 7460, N'AF', N'.sh', N'SHP', N'Pound', N'290', N'STHL 1ZZ', N'^(STHL1ZZ)$', N'en-SH', 3370751, N'', N'' UNION ALL SELECT N'SI', N'SVN', 705, N'SI', N'Slovenia', N'Ljubljana', N'20273', 2007000, N'EU', N'.si', N'EUR', N'Euro', N'386', N'SI- ####', N'^(?:SI)*(\d{4})$', N'sl,sh', 3190538, N'HU,IT,HR,AT', N'' COMMIT; RAISERROR (N'[dbo].[geonames]: Insert Batch: 4.....Done!', 10, 1) WITH NOWAIT; GO BEGIN TRANSACTION; INSERT INTO [dbo].[geonames]([ISO], [ISO3], [ISO-Numeric], [fips], [Country], [Capital], [Area(in sq km)], [Population], [Continent], [tld], [CurrencyCode], [CurrencyName], [Phone], [Postal Code Format], [Postal Code Regex], [Languages], [geonameid], [neighbours], [EquivalentFipsCode]) SELECT N'SJ', N'SJM', 744, N'SV', N'Svalbard and Jan Mayen', N'Longyearbyen', N'62049', 2265, N'EU', N'.sj', N'NOK', N'Krone', N'47', N'', N'', N'no,ru', 607072, N'', N'' UNION ALL SELECT N'SK', N'SVK', 703, N'LO', N'Slovakia', N'Bratislava', N'48845', 5455000, N'EU', N'.sk', N'EUR', N'Euro', N'421', N'### ##', N'^(\d{5})$', N'sk,hu', 3057568, N'PL,HU,CZ,UA,AT', N'' UNION ALL SELECT N'SL', N'SLE', 694, N'SL', N'Sierra Leone', N'Freetown', N'71740', 6286000, N'AF', N'.sl', N'SLL', N'Leone', N'232', N'', N'', N'en-SL,men,tem', 2403846, N'LR,GN', N'' UNION ALL SELECT N'SM', N'SMR', 674, N'SM', N'San Marino', N'San Marino', N'61.2', 29000, N'EU', N'.sm', N'EUR', N'Euro', N'378', N'4789#', N'^(4789\d)$', N'it-SM', 3168068, N'IT', N'' UNION ALL SELECT N'SN', N'SEN', 686, N'SG', N'Senegal', N'Dakar', N'196190', 12853000, N'AF', N'.sn', N'XOF', N'Franc', N'221', N'#####', N'^(\d{5})$', N'fr-SN,wo,fuc,mnk', 2245662, N'GN,MR,GW,GM,ML', N'' UNION ALL SELECT N'SO', N'SOM', 706, N'SO', N'Somalia', N'Mogadishu', N'637657', 9379000, N'AF', N'.so', N'SOS', N'Shilling', N'252', N'@@ #####', N'^([A-Z]{2}\d{5})$', N'so-SO,ar-SO,it,en-SO', 51537, N'ET,KE,DJ', N'' UNION ALL SELECT N'SR', N'SUR', 740, N'NS', N'Suriname', N'Paramaribo', N'163270', 475000, N'SA', N'.sr', N'SRD', N'Dollar', N'597', N'', N'', N'nl-SR,en,srn,hns,jv', 3382998, N'GY,BR,GF', N'' UNION ALL SELECT N'ST', N'STP', 678, N'TP', N'Sao Tome and Principe', N'São Tomé', N'1001', 205000, N'AF', N'.st', N'STD', N'Dobra', N'239', N'', N'', N'pt-ST', 2410758, N'', N'' UNION ALL SELECT N'SV', N'SLV', 222, N'ES', N'El Salvador', N'San Salvador', N'21040', 7066000, N'NA', N'.sv', N'USD', N'Dollar', N'503', N'CP ####', N'^(?:CP)*(\d{4})$', N'es-SV', 3585968, N'GT,HN', N'' UNION ALL SELECT N'SY', N'SYR', 760, N'SY', N'Syria', N'Damascus', N'185180', 19747000, N'AS', N'.sy', N'SYP', N'Pound', N'963', N'', N'', N'ar-SY,ku,hy,arc,fr,en', 163843, N'IQ,JO,IL,TR,LB', N'' UNION ALL SELECT N'SZ', N'SWZ', 748, N'WZ', N'Swaziland', N'Mbabane', N'17363', 1128000, N'AF', N'.sz', N'SZL', N'Lilangeni', N'268', N'@###', N'^([A-Z]\d{3})$', N'en-SZ,ss-SZ', 934841, N'ZA,MZ', N'' UNION ALL SELECT N'TC', N'TCA', 796, N'TK', N'Turks and Caicos Islands', N'Cockburn Town', N'430', 20556, N'NA', N'.tc', N'USD', N'Dollar', N'-648', N'TKCA 1ZZ', N'^(TKCA 1ZZ)$', N'en-TC', 3576916, N'', N'' UNION ALL SELECT N'TD', N'TCD', 148, N'CD', N'Chad', N'N''Djamena', N'1284000', 10111000, N'AF', N'.td', N'XAF', N'Franc', N'235', N'', N'', N'fr-TD,ar-TD,sre', 2434508, N'NE,LY,CF,SD,CM,NG', N'' UNION ALL SELECT N'TF', N'ATF', 260, N'FS', N'French Southern Territories', N'Martin-de-Viviès', N'7829', 0, N'AN', N'.tf', N'EUR', N'Euro ', N'', N'', N'', N'fr', 1546748, N'', N'' UNION ALL SELECT N'TG', N'TGO', 768, N'TO', N'Togo', N'Lomé', N'56785', 5858000, N'AF', N'.tg', N'XOF', N'Franc', N'228', N'', N'', N'fr-TG,ee,hna,kbp,dag,ha', 2363686, N'BJ,GH,BF', N'' UNION ALL SELECT N'TH', N'THA', 764, N'TH', N'Thailand', N'Bangkok', N'514000', 65493000, N'AS', N'.th', N'THB', N'Baht', N'66', N'#####', N'^(\d{5})$', N'th,en', 1605651, N'LA,MM,KH,MY', N'' UNION ALL SELECT N'TJ', N'TJK', 762, N'TI', N'Tajikistan', N'Dushanbe', N'143100', 7211000, N'AS', N'.tj', N'TJS', N'Somoni', N'992', N'######', N'^(\d{6})$', N'tg,ru', 1220409, N'CN,AF,KG,UZ', N'' UNION ALL SELECT N'TK', N'TKL', 772, N'TL', N'Tokelau', N'', N'10', 1405, N'OC', N'.tk', N'NZD', N'Dollar', N'690', N'', N'', N'tkl,en-TK', 4031074, N'', N'' UNION ALL SELECT N'TL', N'TLS', 626, N'TT', N'East Timor', N'Dili', N'15007', 1107000, N'OC', N'.tp', N'USD', N'Dollar', N'670', N'', N'', N'tet,pt-TL,id,en', 1966436, N'ID', N'' UNION ALL SELECT N'TM', N'TKM', 795, N'TX', N'Turkmenistan', N'Ashgabat', N'488100', 5179000, N'AS', N'.tm', N'TMT', N'Manat', N'993', N'######', N'^(\d{6})$', N'tk,ru,uz', 1218197, N'AF,IR,UZ,KZ', N'' UNION ALL SELECT N'TN', N'TUN', 788, N'TS', N'Tunisia', N'Tunis', N'163610', 10378000, N'AF', N'.tn', N'TND', N'Dinar', N'216', N'####', N'^(\d{4})$', N'ar-TN,fr', 2464461, N'DZ,LY', N'' UNION ALL SELECT N'TO', N'TON', 776, N'TN', N'Tonga', N'Nuku''alofa', N'748', 118000, N'OC', N'.to', N'TOP', N'Pa''anga', N'676', N'', N'', N'to,en-TO', 4032283, N'', N'' UNION ALL SELECT N'TR', N'TUR', 792, N'TU', N'Turkey', N'Ankara', N'780580', 71892000, N'AS', N'.tr', N'TRY', N'Lira', N'90', N'#####', N'^(\d{5})$', N'tr-TR,ku,diq,az,av', 298795, N'SY,GE,IQ,IR,GR,AM,AZ,BG', N'' UNION ALL SELECT N'TT', N'TTO', 780, N'TD', N'Trinidad and Tobago', N'Port of Spain', N'5128', 1047000, N'NA', N'.tt', N'TTD', N'Dollar', N'-867', N'', N'', N'en-TT,hns,fr,es,zh', 3573591, N'', N'' UNION ALL SELECT N'TV', N'TUV', 798, N'TV', N'Tuvalu', N'Vaiaku', N'26', 12000, N'OC', N'.tv', N'AUD', N'Dollar', N'688', N'', N'', N'tvl,en,sm,gil', 2110297, N'', N'' UNION ALL SELECT N'TW', N'TWN', 158, N'TW', N'Taiwan', N'Taipei', N'35980', 22894384, N'AS', N'.tw', N'TWD', N'Dollar', N'886', N'#####', N'^(\d{5})$', N'zh-TW,zh,nan,hak', 1668284, N'', N'' UNION ALL SELECT N'TZ', N'TZA', 834, N'TZ', N'Tanzania', N'Dar es Salaam', N'945087', 40213000, N'AF', N'.tz', N'TZS', N'Shilling', N'255', N'', N'', N'sw-TZ,en,ar', 149590, N'MZ,KE,CD,RW,ZM,BI,UG,MW', N'' UNION ALL SELECT N'UA', N'UKR', 804, N'UP', N'Ukraine', N'Kiev', N'603700', 45994000, N'EU', N'.ua', N'UAH', N'Hryvnia', N'380', N'#####', N'^(\d{5})$', N'uk,ru-UA,rom,pl,hu', 690791, N'PL,MD,HU,SK,BY,RO,RU', N'' UNION ALL SELECT N'UG', N'UGA', 800, N'UG', N'Uganda', N'Kampala', N'236040', 31367000, N'AF', N'.ug', N'UGX', N'Shilling', N'256', N'', N'', N'en-UG,lg,sw,ar', 226074, N'TZ,KE,SD,CD,RW', N'' UNION ALL SELECT N'UM', N'UMI', 581, N'', N'United States Minor Outlying Islands', N'', N'0', 0, N'OC', N'.um', N'USD', N'Dollar ', N'', N'', N'', N'en-UM', 5854968, N'', N'' UNION ALL SELECT N'US', N'USA', 840, N'US', N'United States', N'Washington', N'9629091', 303824000, N'NA', N'.us', N'USD', N'Dollar', N'1', N'#####-####', N'^(\d{9})$', N'en-US,es-US,haw', 6252001, N'CA,MX,CU', N'' UNION ALL SELECT N'UY', N'URY', 858, N'UY', N'Uruguay', N'Montevideo', N'176220', 3477000, N'SA', N'.uy', N'UYU', N'Peso', N'598', N'#####', N'^(\d{5})$', N'es-UY', 3439705, N'BR,AR', N'' UNION ALL SELECT N'UZ', N'UZB', 860, N'UZ', N'Uzbekistan', N'Tashkent', N'447400', 28268000, N'AS', N'.uz', N'UZS', N'Som', N'998', N'######', N'^(\d{6})$', N'uz,ru,tg', 1512440, N'TM,AF,KG,TJ,KZ', N'' UNION ALL SELECT N'VA', N'VAT', 336, N'VT', N'Vatican', N'Vatican City', N'0.44', 921, N'EU', N'.va', N'EUR', N'Euro', N'379', N'', N'', N'la,it,fr', 3164670, N'IT', N'' UNION ALL SELECT N'VC', N'VCT', 670, N'VC', N'Saint Vincent and the Grenadines', N'Kingstown', N'389', 117534, N'NA', N'.vc', N'XCD', N'Dollar', N'-783', N'', N'', N'en-VC,fr', 3577815, N'', N'' UNION ALL SELECT N'VE', N'VEN', 862, N'VE', N'Venezuela', N'Caracas', N'912050', 26414000, N'SA', N'.ve', N'VEF', N'Bolivar', N'58', N'####', N'^(\d{4})$', N'es-VE', 3625428, N'GY,BR,CO', N'' UNION ALL SELECT N'VG', N'VGB', 92, N'VI', N'British Virgin Islands', N'Road Town', N'153', 21730, N'NA', N'.vg', N'USD', N'Dollar', N'-283', N'', N'', N'en-VG', 3577718, N'', N'' UNION ALL SELECT N'VI', N'VIR', 850, N'VQ', N'U.S. Virgin Islands', N'Charlotte Amalie', N'352', 108708, N'NA', N'.vi', N'USD', N'Dollar', N'-339', N'', N'', N'en-VI', 4796775, N'', N'' UNION ALL SELECT N'VN', N'VNM', 704, N'VM', N'Vietnam', N'Hanoi', N'329560', 86116000, N'AS', N'.vn', N'VND', N'Dong', N'84', N'######', N'^(\d{6})$', N'vi,en,fr,zh,km', 1562822, N'CN,LA,KH', N'' UNION ALL SELECT N'VU', N'VUT', 548, N'NH', N'Vanuatu', N'Port Vila', N'12200', 215000, N'OC', N'.vu', N'VUV', N'Vatu', N'678', N'', N'', N'bi,en-VU,fr-VU', 2134431, N'', N'' UNION ALL SELECT N'WF', N'WLF', 876, N'WF', N'Wallis and Futuna', N'Matâ''Utu', N'274', 16025, N'OC', N'.wf', N'XPF', N'Franc', N'681', N'', N'', N'wls,fud,fr-WF', 4034749, N'', N'' UNION ALL SELECT N'WS', N'WSM', 882, N'WS', N'Samoa', N'Apia', N'2944', 217000, N'OC', N'.ws', N'WST', N'Tala', N'685', N'', N'', N'sm,en-WS', 4034894, N'', N'' UNION ALL SELECT N'YE', N'YEM', 887, N'YM', N'Yemen', N'San‘a’', N'527970', 23013000, N'AS', N'.ye', N'YER', N'Rial', N'967', N'', N'', N'ar-YE', 69543, N'SA,OM', N'' UNION ALL SELECT N'YT', N'MYT', 175, N'MF', N'Mayotte', N'Mamoudzou', N'374', 159042, N'AF', N'.yt', N'EUR', N'Euro', N'269', N'#####', N'^(\d{5})$', N'fr-YT', 1024031, N'', N'' UNION ALL SELECT N'ZA', N'ZAF', 710, N'SF', N'South Africa', N'Pretoria', N'1219912', 43786000, N'AF', N'.za', N'ZAR', N'Rand', N'27', N'####', N'^(\d{4})$', N'zu,xh,af,nso,en-ZA,tn,st,ts', 953987, N'ZW,SZ,MZ,BW,NA,LS', N'' UNION ALL SELECT N'ZM', N'ZMB', 894, N'ZA', N'Zambia', N'Lusaka', N'752614', 11669000, N'AF', N'.zm', N'ZMK', N'Kwacha', N'260', N'#####', N'^(\d{5})$', N'en-ZM,bem,loz,lun,lue,ny,toi', 895949, N'ZW,TZ,MZ,CD,NA,MW,AO', N'' UNION ALL SELECT N'ZW', N'ZWE', 716, N'ZI', N'Zimbabwe', N'Harare', N'390580', 12382000, N'AF', N'.zw', N'ZWL', N'Dollar', N'263', N'', N'', N'en-ZW,sn,nr,nd', 878675, N'ZA,MZ,BW,ZM', N'' COMMIT; RAISERROR (N'[dbo].[geonames]: Insert Batch: 5.....Done!', 10, 1) WITH NOWAIT; GO |
Don’t forget to index the appropriate columns!
CREATE INDEX idx_continent ON dbo.geonames (Continent); |
Here’s the query to create a lists of countries grouped by continent code.
SELECT DISTINCT Continent, Counties = LEFT(countries.Continent_Members, LEN(countries.Continent_Members)-1) FROM dbo.geonames geo1 CROSS APPLY ( SELECT Country + ',' AS [text()] FROM dbo.geonames geo2 WHERE geo1.Continent = geo2.Continent ORDER BY Country FOR XML PATH('') ) countries (Continent_Members); |
Now we have a list of countries in each continent.
Create this same table structure, with data, in MySQL by modifying the TSQL above or any alternative method you prefer. Here’s how much simpler the equivalent query is to create in MySQL.
SELECT Continent, GROUP_CONCAT(country) AS countries FROM geonames GROUP BY Continent; |










Just what I was looking for. I tried the GROUP_CONCAT on a table which has a lot of text but it seems to be truncating the values after a certain length. Any ideas how to fix this problem?
Hi Av, yes, results are truncated by default to 1024 in length. You can change this by adjusting the group_concat_max_len variable. See http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat