【问题标题】:How do I remove line feed characters when selecting data from SQL Server?从 SQL Server 选择数据时如何删除换行符?
【发布时间】:2015-04-22 02:15:52
【问题描述】:

我将包含换行符的数据插入到数据库中。然后我检索该数据。我正在使用此脚本尝试在从 SQL 中选择数据时删除换行符:

Select Replace(Replace stringname,char(10),'',char(32),'')) from tablename

替换功能似乎执行了,但它没有正确删除换行符。

【问题讨论】:

标签: sql-server sql-server-2008 linefeed


【解决方案1】:

通过以下方式解决。 我在 sql 数据中遇到了
问题,甚至在 sql 中也看不到,导致我在某些 jquery 函数中出现问题。

换行符是 CHAR(10);回车是 CHAR(13)。

以下代码将删除换行符并将其替换为长度为零的字符串:

UPDATE Table_Name SET Field_Name = REPLACE(Field_Name,CHAR(10),'');

【讨论】:

    【解决方案2】:
    (select Replace( (select REPLACE(   ColName,CHAR(10),'')),char(13),''))
       as ColAlias
    
    from YourTable
    

    【讨论】:

    • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    【解决方案3】:

    不应该是Select Replace(Replace(stringname,char(10),''),char(13),'') from tablename吗?

    您也可以使用单个替换 Select Replace(stringname,char(13)+char(10),'') from tablename。

    char(32)对应一个空格符号

    【讨论】:

      【解决方案4】:

      你的语句的语法看起来不对,也许你可以试试这样的:

      Select Replace(Replace(@str,CHAR(10),''),CHAR(13),'')
      

      内部替换替换LF,外部替换替换CR

      【讨论】:

      • 感谢您的回复。是的,你是对的。我正在使用相同的脚本。但它不起作用。例如,让我获取带有 char-code(10) 的字符串,我得到的是 'xxxx(3 spaces)xx' 。当我通过用'-'替换charcode进行测试时,检索用charcode替换'-',但它显示了一个空格,如'xxx -xx')。而且当 excel export xxx 进入一行时,-xx 进入第二行。
      • @charu,也许你可以试试这个:声明 \@pos int;声明 \@str nvarchar(255), \@res nvarchar(255);选择 \@str = 'a'+CHAR(10)+CHAR(13)+'abcd' 设置 \@pos = 1; WHILE \@pos
      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多