sql將逗號分割的字符串轉(zhuǎn)成多行 sql語句如何將多個逗號字符串拆分成多條數(shù)據(jù)?
sql語句如何將多個逗號字符串拆分成多條數(shù)據(jù)?sql server中沒有這種函數(shù),這個可以自建一個function去全部拆分,給你個思路,用charindex又或者instr等函數(shù),在循環(huán)體中里查分隔
sql語句如何將多個逗號字符串拆分成多條數(shù)據(jù)?
sql server中沒有這種函數(shù),這個可以自建一個function去全部拆分,給你個思路,用charindex又或者instr等函數(shù),在循環(huán)體中里查分隔符再次出現(xiàn)的位置和并留下記錄又出現(xiàn)次數(shù)到變量,后再可以使用函數(shù)截取字符串,輸出低
mysqlcast和convert的區(qū)別?
甚至一樣的,只不過Convert比Cast多了個style可以不讓轉(zhuǎn)換的結(jié)果轉(zhuǎn)成更改的顯示樣式
以下是網(wǎng)上不能找到的參考資料
SQL中的cast和convert也是用來將一種數(shù)據(jù)類型的表達式轉(zhuǎn)換成為另一種數(shù)據(jù)類型的表達式。CAST和CONVERT可以提供有幾分相似的功能,只是語法差別。在時間轉(zhuǎn)變中一般用到convert,是因為它比cast多加了一個style,這個可以被轉(zhuǎn)化成不同時間的格式。
一、語法:
1、使用CAST
CAST(expressionASdata_type)
2、使用CONVERT
CONVERT(data_type[(length)],expression[,style])
3、參數(shù)那就證明
expression
是任何最有效的表達式。
data_type:
目標系統(tǒng)所能提供的數(shù)據(jù)類型,除了bigint和sql_variant。不能不能在用用戶定義的數(shù)據(jù)類型。
length
nchar、nvarchar、char、varchar、binary或varbinary數(shù)據(jù)類型的可選參數(shù)。
style
日期格式樣式,方能將datetime或smalldatetime數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)(nchar、nvarchar、char、varchar、nchar或nvarchar數(shù)據(jù)類型);也可以字符串格式樣式,亦能將float、real、money或smallmoney數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)(nchar、nvarchar、char、varchar、nchar或nvarchar數(shù)據(jù)類型)。
二、cast和convert的代碼示例
SQL代碼復制
selectCAST(123asint)--123
selectCONVERT(int,123)--123
selectCAST(123.4asint)--123
selectCONVERT(int,123.4)--123
selectCAST(123.4asint)
selectCONVERT(int,123.4)
--Conversionfailedwhenconvertingthevarcharvalue123.4todatatypeint.
selectCAST(123.4asdecimal)--123
selectCONVERT(decimal,123.4)--123
selectCAST(123.4asdecimal(9,2))--123.40
selectCONVERT(decimal(9,2),123.4)--123.40
r1234.56
selectCONVERT(varchar(20),@Num,0)--1234.56
selectCONVERT(varchar(20),@Num,1)--1,234.56
selectCONVERT(varchar(20),@Num,2)--1234.5600
三、convert函數(shù)的style參數(shù)那就證明
1、Date和Time樣式
不帶世紀數(shù)位(yy)帶世紀數(shù)位(yyyy)輸入數(shù)字
-0或100monddyyyyhh:miAM(或PM)
11011mm/dd/yy
101mm/dd/yyyy
21022
102
31033dd/mm/yy
103dd/mm/yyyy
41044
104
51055dd-mm-yy
105dd-mm-yyyy
61066ddmonyy
106ddmonyyyy
71077Mondd,yyGMondd,yyyy
8108hh:mi:ss
-9或109monddyyyyhh:mi:ss:mmmAM(或PM)
1011010mm-dd-yy
110mm-dd-yyyy
1111111yy/mm/dd
111yyyy/mm/dd
1211212yymmdd
112yyyymmdd
-13或113ddmonyyyyhh:mi:ss:mmm(24h)
14114ddmonyyyyhh:mi:ss:mmm(24h)
-20或120yyyy-mm-ddhh:mi:ss(24h)
-21或(24h)
(無空格)
(無空格)
-130ddmonyyyyhh:mi:ss:mmmAM
-131dd/mm/yyyyhh:mi:ss:mmmAM
2、float和real樣式
值作為輸出
0(默認值)至少包涵6位。據(jù)是需要使用科學記數(shù)法。
1一直都為8位值。一直使用科學記數(shù)法。
2一直都為16位值。一直在用科學記數(shù)法。
3、money和smallmoney樣式
值控制輸出
0小數(shù)點左側(cè)每三位數(shù)字之間不以逗號互相連通,小數(shù)點右側(cè)取兩位數(shù),或者4235.98。
1小數(shù)點左側(cè)每三位數(shù)字之間以逗號分隔,小數(shù)點右側(cè)取兩位數(shù),或者3,510.92。
2小數(shù)點左側(cè)每三位數(shù)字之間以逗號分隔開來,小數(shù)點右側(cè)取兩位數(shù),比如3,510.92。
126可以轉(zhuǎn)換為char(n)或varchar(n)時,天壤于樣式2