以指定的次數(shù)重復(fù)字符表達(dá)式。
REPLICATE ( character_expression , integer_expression )
character_expression
由字符數(shù)據(jù)組成的字母數(shù)字表達(dá)式。character_expression 可以是常量或變量,也可以是字符列或二進(jìn)制數(shù)據(jù)列。
integer_expression
是正整數(shù)。如果 integer_expression 為負(fù),則返回空字符串。
varchar
character_expression 必須為可隱性轉(zhuǎn)換為 varchar 的數(shù)據(jù)類型。否則,使用 CAST 函數(shù)顯式轉(zhuǎn)換 character_expression。
兼容級別可能影響返回值。有關(guān)更多信息,請參見 sp_dbcmptlevel。
下例重復(fù)兩遍每個(gè)作者的名字。
USE pubs
SELECT REPLICATE(au_fname, 2)
FROM authors
ORDER BY au_fname
下面是結(jié)果集:
----------------------
AbrahamAbraham
AkikoAkiko
AlbertAlbert
AnnAnn
AnneAnne
BurtBurt
CharleneCharlene
CherylCheryl
DeanDean
DirkDirk
HeatherHeather
InnesInnes
JohnsonJohnson
LiviaLivia
MarjorieMarjorie
MeanderMeander
MichaelMichael
MichelMichel
MorningstarMorningstar
ReginaldReginald
SherylSheryl
StearnsStearns
SylviaSylvia
(23 row(s) affected)
下例使用 REPLICATE、SUBSTRING 和 SPACE 生成 authors 表中的所有作者的電話和傳真列表。
-- Replicate phone number twice because the fax number is identical to
-- the author telephone number.
USE pubs
GO
SELECT SUBSTRING((UPPER(au_lname) + ',' + SPACE(1) + au_fname), 1, 35)
AS Name, phone AS Phone, REPLICATE(phone,1) AS Fax
FROM authors
ORDER BY au_lname, au_fname
GO
下面是結(jié)果集:
Name Phone Fax
----------------------------------- ------------ -----------------------
BENNET, Abraham 415 658-9932 415 658-9932
BLOTCHET-HALLS, Reginald 503 745-6402 503 745-6402
CARSON, Cheryl 415 548-7723 415 548-7723
DEFRANCE, Michel 219 547-9982 219 547-9982
DEL CASTILLO, Innes 615 996-8275 615 996-8275
DULL, Ann 415 836-7128 415 836-7128
GREEN, Marjorie 415 986-7020 415 986-7020
GREENE, Morningstar 615 297-2723 615 297-2723
GRINGLESBY, Burt 707 938-6445 707 938-6445
HUNTER, Sheryl 415 836-7128 415 836-7128
KARSEN, Livia 415 534-9219 415 534-9219
LOCKSLEY, Charlene 415 585-4620 415 585-4620
MACFEATHER, Stearns 415 354-7128 415 354-7128
MCBADDEN, Heather 707 448-4982 707 448-4982
O'LEARY, Michael 408 286-2428 408 286-2428
PANTELEY, Sylvia 301 946-8853 301 946-8853
RINGER, Albert 801 826-0752 801 826-0752
RINGER, Anne 801 826-0752 801 826-0752
SMITH, Meander 913 843-0462 913 843-0462
STRAIGHT, Dean 415 834-2919 415 834-2919
STRINGER, Dirk 415 843-2991 415 843-2991
WHITE, Johnson 408 496-7223 408 496-7223
YOKOMOTO, Akiko 415 935-4228 415 935-4228
(23 row(s) affected)
本例中,當(dāng)數(shù)值從數(shù)字?jǐn)?shù)據(jù)類型轉(zhuǎn)換為字符型或 Unicode 型時(shí),從左填充數(shù)字,使其達(dá)到指定的長度。
USE Northwind
GO
DROP TABLE t1
GO
CREATE TABLE t1
(
c1 varchar(3),
c2 char(3)
)
GO
INSERT INTO t1 VALUES ('2', '2')
INSERT INTO t1 VALUES ('37', '37')
INSERT INTO t1 VALUES ('597', '597')
GO
SELECT REPLICATE('0', 3 - DATALENGTH(c1)) + c1 AS [Varchar Column],
REPLICATE('0', 3 - DATALENGTH(c2)) + c2 AS [Char Column]
FROM t1
GO
相關(guān)文章