首页 > 解决方案 > SQL在Dot Issue后将数据分为2

问题描述

我有一个使用存储过程更新的表。一列用于图像 URL。存储过程中的代码如下所示:

UPDATE Products 
SET ImageUrl = 'https://images.XXXXXXX.com/lm/image/s/'+RIGHT(Source,2)+'/'+Source+'_'+Code+'.203'

我需要将网址放在单元格中的一行中,但是,当将网址写入单元格时,它将在 .203 之前拆分网址。所以,在细胞中,它就像;

 https://images.XXXX.com/lm/image/s/ab/g671235_12312
.203

这对我来说通常没问题,但我在 XML 中使用这些数据。并且由于Url不在一行中,所以我连接的远程服务器在我提交XML时不会更新图像。当我手动修复 Url 并将其放在一行中时,它就可以正常工作。我搜索并搜索以找到解决此问题的方法,但找不到解决方案。任何帮助将不胜感激。

谢谢

标签: sqlsql-server

解决方案


  • 听起来您的“代码”列中捕获了回车/换行符。当用户手动摆弄值时,我曾多次遇到这种情况(他们更新值,然后认为这将在仅在列中插入 r\n\ 值时应用该值)。

仔细检查是否是这种情况:

  1. 找到导致此换行符出现的值
  2. 复制该单元格值(我假设您使用的是 SSMS)
  3. 打开 Notepad++、Sublime 或类似的会显示不可打印字符的编辑器
  4. 将您的编辑器设置为显示不可打印的字符(在 Notepad++ 中,它是 View > Show Symbols > Show All Characters)
  5. 然后,这应该显示导致您头痛的换行符

快速解决方案:擦洗 \r\n 值 - https://stackoverflow.com/a/951705/8026186

更理想的解决方案防止\n\r 插入 如果您有权访问数据库中输入的数据,避免这种情况的最佳方法是首先防止\r\n 将其插入单元格。如果您无法控制初始输入,则快速解决方案将起作用。但是,根据过去的经验,您首先要避免出现不可打印的值。

希望这可以帮助!


推荐阅读