• 相关软件
    >REPLICATE 创建者:webmaster 更新时间:2006-02-16 15:51

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



    语法


    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
    相关文章
    本页查看次数: