代码之家  ›  专栏  ›  技术社区  ›  DCNYAM

带有尾随空格的CHAR行为

  •  1
  • DCNYAM  · 技术社区  · 16 年前

    |testX|5|
    |XXXXX|5|
    

    |test|4|
    |X|0|
    

    USE Test;
    GO
    
    SET ANSI_PADDING ON;
    GO
    
    CREATE TABLE BlankTest
    (
        Value char(5) NOT NULL
    );
    GO
    
    INSERT INTO BlankTest (
        Value
    ) VALUES (
        'test'
    );
    GO
    
    INSERT INTO BlankTest (
        Value
    ) VALUES (
        ''
    );
    GO
    
    SELECT REPLACE(Value, ' ', 'X'), LEN(Value)
    FROM BlankTest;
    GO
    
    DROP TABLE BlankTest;
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    REPLACE 返回varchar

    试试这个SELECT

    ...REPLACE(Value, ' ', 'ZZZZZZZZZ')
    

    ...SQL_VARIANT_PROPERTY (REPLACE(Value, ' ', 'ZZZZZZZZZ'), 'MaxLength')...
    

    编辑:

    1. 我聪明的同事提醒我,你需要使用DATALENGTH来包含尾随空格,而不是LEN。 Asked often here

    2. WHERE value = 'test' higher precedence (fixed)