【问题标题】:Quick way to space fill column 256 chars SQL-Server 2012快速填充列 256 个字符 SQL-Server 2012 的方法
【发布时间】:2014-06-18 19:11:21
【问题描述】:

所以我有一个使用 SQL Server 2012 创建的文件。

许多列是可选的或未使用的,我们被要求用零填充数字列和空格填充字母数字列来代替通常存在的字符。

现在我有一个名为 CDD 的列,它有 256 个字符长。

除了在单引号中按空格键 256 次之外,还有其他更简单的方法可以填充此列吗?

该文件是固定宽度的,因此我必须在此列中有 256 个空格才能正确导入。我正在查看 replicatestuff,但它们没有意义,因为该列没有要替换的原始字符串。

Replicate 与零一起使用,但如何使用空格验证它?如果其中有一个实际字符,该列不会像它那样扩展...SQL-Server 是否以这种方式折叠空白?

【问题讨论】:

  • 如果没有要填充的东西,填充会起作用吗?
  • 哦,亲爱的。我希望这是一个家庭作业。如果您被要求对生产数据库中的表执行此操作,您可能需要完善您的简历,看看您是否找到了一些有报酬的工作。
  • @TommCatt 哦,圣诞老人……这是一个项目中特定布局的一部分。该表有点无关紧要,因为文件的平面文件目标需要一定的宽度。没有人要求我这样做,但必须这样做。这就是我在这里的原因。我觉得我的简历不错。看看 www.linkedin.com/pub/anthony-borgetti/43/34/6b9/
  • 如果一个表真的无关紧要,它不应该占用数据库中的空间。如果您需要表来执行操作,这不是无关紧要的。我认为您的意思是表中数据的形式无关紧要。但数据应始终尽可能保持最原始、“自然”的形式。如果需要以某种方式对其进行格式化(而哪些数据不需要),则在为特定用途提取数据时执行格式化。如果该表在 /here/ 有用,那么您或其他人可能很快就会发现它在 /there/ 也有用。这是原始数据,请保持干净。

标签: sql database sql-server-2012 fill replicate


【解决方案1】:

您将要使用replicate 函数。

SELECT REPLICATE(' ',256)

此函数将重复空格(或您在第一个参数中输入的任何字符串)256 次(或在第二个参数中多次)。

【讨论】:

    【解决方案2】:

    除了REPLICATE你还可以使用

    SELECT SPACE(256);
    

    就“列扩展”而言,除非您单击“文本中的结果”(而不是网格),否则该列不会在 SSMS 中显示为扩展。如果您使用LEN 函数,它将返回0,但DATALENGTH 将返回varchar 列请求的实际空格数,或char 列的定义长度。无论哪种方式,如果将输出复制到文本编辑器中,您会看到它确实是一串空格。

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 2012-06-10
      • 2010-12-13
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      相关资源
      最近更新 更多