我如何将sql变量分成2

时间:2008-12-23 12:39:48

标签: plsql

我在sql中有一个名为地址的字段,其中包含80个字符。 我想把这个字段放入2个字段addr1和addr2每个40个字符。 我该怎么做。

4 个答案:

答案 0 :(得分:3)

这适用于T-SQL,但它与PL / SQL

的区别不大
declare @yourVar varchar(80)
select substring(@yourVar, 1, 40), substring(@yourVar, 40, 40)

答案 1 :(得分:2)

对于plsql,它是substr(),所以选择substr(addr,1,40)作为addr1,substr(addr,40)作为addr2来自......

答案 2 :(得分:0)

如果您将该表更改为包含两列而不是一列,我认为您的架构会更好。我更喜欢解析当前值的解决方案。

答案 3 :(得分:0)

蛮力斩断位置40处的80个字符的值会导致在单词中间断开的风险。您可能希望改为:

  1. 用一个空格替换所有空格。
  2. 在第40位或之前找到最后一个空白。
  3. 将第一个结果字段中的所有内容放在空白处。
  4. 将第二个结果字段中的所有内容放在空白处。
  5. 上述操作的具体细节取决于您可以使用哪些工具(例如,仅使用SQL,或从一个数据库读取以及使用单独的程序写入另一个数据库等)。

    有可能填充80个字符的值,使得“单词”之间的断开将要求其中一个结果值长度超过40个字符以避免截断。