What is the Null Character literal in TSQL?

前端 未结 6 1888
暖寄归人
暖寄归人 2020-11-27 18:49

I am wondering what the literal for a Null character (e.g. \'\\0\') is in TSQL.

Note: not a NULL field value, but the null character (see link).

6条回答
  •  臣服心动
    2020-11-27 19:30

    Looks like the C-style terminator is a terminator in SQL as well:

    SELECT  REPLACE(bad, CHAR(0), ' ')
    FROM    (
             SELECT 'a' + CHAR(0) + 'b' AS bad
            ) AS X
    

    Looks like it's also dependent on COLLATION:

    SELECT  REPLACE(CAST(bad COLLATE SQL_Latin1_General_CP1_CI_AS AS varchar(10)), CHAR(0), ' ')
    FROM    (
             SELECT 'a' + CHAR(0) + 'b' AS bad
            ) AS X
    

    works as expected, compared to:

    SELECT  REPLACE(CAST(bad COLLATE Latin1_General_CI_AS AS varchar(10)), CHAR(0), ' ')
    FROM    (
             SELECT 'a' + CHAR(0) + 'b' AS bad
            ) AS X
    

提交回复
热议问题