SQL:UserDefinedFunction:Country2Continent

出自ProgWiki

跳轉到: 導航, 搜尋

用途

程式碼

-- 物件:  UserDefinedFunction [dbo].[Country2Continent]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[Country2Continent]
(
	@Country AS VARCHAR(32)
)
RETURNS VARCHAR(32)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Continent AS VARCHAR(32);
 
	-- Add the T-SQL statements to compute the return value here
	SELECT @Continent=CASE 
		WHEN @Country in (
			/* 東亞 */
				'中華人民共和國','大陸地區','中國大陸','香港','澳門',
				'台灣','臺灣','中華民國','TAIWAN','台澎金馬',
				'蒙古',
				'日本','沖繩','琉球群島',
				'朝鮮','北韓',
				'韓國','南韓',
			/* 東南亞 */
				'越南','泰國','寮國','緬甸','柬埔寨',
				'印尼','汶萊','新加坡','東帝汶','菲律賓','馬來西亞',
			/* 南亞 */
				'孟加拉','不丹','印度','馬爾地夫','尼泊爾','巴基斯坦','斯里蘭卡',
			/* 中亞 */
				'哈薩克','吉爾吉斯','塔吉克','土庫曼','烏茲別克',
			/* 西亞 */
				'亞美尼亞','亞塞拜然','巴林','賽普勒斯','喬治亞','伊朗','伊拉克',
				'以色列','約旦','科威特','黎巴嫩','阿曼','巴勒斯坦',
				'卡達','沙烏地阿拉伯','敘利亞','阿拉伯聯合大公國','葉門','土耳其'
			) THEN '亞洲'
 
		WHEN @Country in (
			/* 西歐 */
				'奧地利','比利時','法國','德國','愛爾蘭','列支敦斯登',
				'盧森堡','摩納哥','荷蘭','瑞士','英國',
			/* 北歐 */
				'丹麥','芬蘭','冰島','挪威','瑞典',
			/* 東歐 */
				'白俄羅斯','捷克','愛沙尼亞','匈牙利','拉脫維亞',
				'立陶宛','摩爾多瓦','波蘭','斯洛伐克','烏克蘭',
			/* 南歐 */
				'阿爾巴尼亞','安道爾','波士尼亞赫塞哥維納','保加利亞',
				'克羅埃西亞','希臘','義大利','科索沃','馬其頓','馬爾他',
				'蒙特內哥羅',' 葡萄牙','羅馬尼亞','聖馬利諾','塞爾維亞',
				'斯洛維尼亞','西班牙','梵蒂岡'
			) THEN '歐洲'
 
		WHEN @Country in (
			/* 北美 */
				'加拿大','美國','格陵蘭','百慕達'
			) THEN '北美洲'
 
		WHEN @Country in (
			/* 中美 */
				'貝里斯','哥斯大黎加','薩爾瓦多','瓜地馬拉','宏都拉斯','尼加拉瓜','巴拿馬',
				'巴哈馬','古巴','牙買加','海地','多明尼加','巴貝多','千里達','格瑞那達',
				'多米尼克','聖露西亞','聖文森','聖克里斯多福'
			) THEN '中美洲'
 
		WHEN @Country in (
			/* 南美 */
				'阿根廷','玻利維亞','巴西','智利','哥倫比亞',
				'福克蘭群島','法屬蓋亞那','蓋亞那','巴拉圭',
				'秘魯','蘇利南','烏拉圭','委內瑞拉'
			) THEN '南美洲'
 
		WHEN @Country in (
			/* 北非 */
				'阿爾及利亞','埃及','利比亞','摩洛哥','蘇丹','突尼西亞',
			/* 西非 */
				'貝南','布吉納法索','查德','象牙海岸','甘比亞','迦納','幾內亞','幾內亞比索',
				'賴比瑞亞','馬利','尼日','茅利塔尼亞','奈及利亞','塞內加爾','獅子山','多哥','維德角',
			/* 中非 */
		 		'喀麥隆','中非','赤道幾內亞','加彭','剛果共和國','剛果民主共和國',
			/* 南非 */
				'安哥拉','波札那','葛摩','賴索托','馬達加斯加','馬拉威','模里西斯',
				'莫三比克','納米比亞','史瓦濟蘭','南非','尚比亞','辛巴威',
			/* 東非 */
				'蒲隆地','吉布地','厄利垂亞','衣索比亞','肯亞','盧安達','塞席爾','索馬利亞',
				'坦尚尼亞','烏干達爾及利亞','埃及','利比亞','摩洛哥','蘇丹','突尼西亞'
			) THEN '非洲'
		WHEN @Country in (
			/* 大洋洲 */
				'澳大利亞','澳洲','紐西蘭','巴布亞新幾內亞','斐濟',
				'密克羅尼西亞','諾魯','薩摩亞','湯加','萬那杜','馬紹爾群島',
				'帕勞','索羅門群島','基裡巴斯','吐瓦魯'
			) THEN '大洋洲'
		END
 
	-- Return the result of the function
	RETURN @Continent;
 
END
GO
個人工具
名字空間
變換
動作
導航
分類
其他
技術類News或部落格
工具箱