惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - 尹合磊

用ObjectDataSource实现自定义分页的心得总结 如何:在 Calendar 控件中显示数据库中的选定日期 AddNew 方法创建可更新 Recordset 对象的新记录。 求一“从所有同类中排除某一类型”正则表达式? 按字节长度截取字符串(支持截取带HTML代码样式的字符串) ASP.NET2.0资料收藏 asp中通过一个全局方法来防止SQL注入式攻击 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码? 解决TreeView中使用JavaScript完成CheckBox全选的办法 Yahoo邮箱POP、SMTP服务器设置详解 关于前台调用后台事件__doPostBack函数 客户端触发Asp.net中服务端控件事件 marquee基本语法的全解释 SHTML 教程 JavaScript不间断连续图片滚动效果 Asp.net(C#)给图片加上水印效果 ASP.NET(C#)生成缩略图 ASP.NET中存取图片到数据库的示例 Data Access Application Block--使用存储过程,参数及事务
SQL:以指定的次数重复字符表达式
尹合磊 · 2008-06-05 · via 博客园 - 尹合磊

REPLICATE

以指定的次数重复字符表达式。

语法

REPLICATE ( character_expression , integer_expression )

参数

character_expression

由字符数据组成的字母数字表达式。character_expression 可以是常量或变量,也可以是字符列或二进制数据列。

integer_expression

是正整数。如果 integer_expression 为负,则返回空字符串。

返回类型

varchar

character_expression 必须为可隐性转换为 varchar 的数据类型。否则,使用 CAST 函数显式转换 character_expression

注释

兼容级别可能影响返回值。有关更多信息,请参见 sp_dbcmptlevel。

示例
A. 使用 REPLICATE

下例重复两遍每个作者的名字。

USE pubs
SELECT REPLICATE(au_fname, 2) 
FROM authors
ORDER BY au_fname

下面是结果集:

---------------------- 
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)
B. 使用 REPLICATE、SUBSTRING 和 SPACE

下例使用 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

下面是结果集:

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)
C. 使用 REPLICATE 和 DATALENGTH

本例中,当数值从数字数据类型转换为字符型或 Unicode 型时,从左填充数字,使其达到指定的长度。

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