本文通過執行個體解析了SQL Server串連欄位的方法……
今天西部E網的icech要導 SQL Server 的一些資料,本來年月日是分成三個欄位分別存放在 StarYear、StarMonth 和 StarDay 的,但是對方的資料年月日是在一個欄位中,如下:
原來資料格式
StarYear StarMonth StarDay
2005 08 21
2005 08 22
2005 11 09
2005 12 11
要求匯出的格式為
StarDate
2005-08-21
2005-08-22
2005-11-09
2005-12-11
如果StarYear、StarMonth 和 StarDay 三個欄位都是char型
西部E網
那麼直接用sql語句:
SELECT RTRIM(StarYear) + '-' + RTRIM(StarMonth) + '-' + RTRIM(StarDay) AS StarDate FROM STAR |
即可。
註:RTRIM是為了格式需要,將右邊的空格去掉,其他函數請見本文最下方。
如果StarYear、StarMonth 和 StarDay 三個欄位都是int型
那麼對於欄位就要進行格式轉換一下
SELECT CAST(StarYear AS varchar(4)) + '-' + CAST(StarMonth AS varchar(2)) + '-' + CAST(StarDay AS VarChar(2)) AS StarDate FROM STAR |
註:CAST是轉換函式,如果StarYear欄位為字串或者其他格式也可以進行轉換。更多的資料類型轉換函式見本文最下方。
西部E網
----字串函數----
ASCII() --函數返回字元運算式最左端字元的ASCII 碼值
CHAR() --函數用於將ASCII 碼轉換為字元
--如果沒有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數會返回一個NULL 值
LOWER() --函數把字串全部轉換為小寫
UPPER() --函數把字串全部轉換為大寫
STR() --函數把數值型資料轉換為字元型資料
LTRIM() --函數把字串頭部的空格去掉
RTRIM() --函數把字串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函數返回部分字串
CHARINDEX(),PATINDEX() --函數返回字串中某個指定的子串出現的開始位置
SOUNDEX() --函數返回一個四位字元碼
--SOUNDEX函數可用來尋找聲音相似的字串但SOUNDEX函數對數字和漢字均只返回0值
DIFFERENCE() --函數返回由SOUNDEX 函數返回的兩個字元運算式的值的差異
--0 兩個SOUNDEX 函數傳回值的第一個字元不同
--1 兩個SOUNDEX 函數傳回值的第一個字元相同
--2 兩個SOUNDEX 函數傳回值的第一二個字元相同
--3 兩個SOUNDEX 函數傳回值的第一二三個字元相同
--4 兩個SOUNDEX 函數傳回值完全相同
西部E網
----資料類型轉換函式----
CAST() 函數文法如下
CAST() ( AS [ length ])
CONVERT() 函數文法如下
CONVERT() ([ length ], [, style])