我在 sql 中有一个名为 address 的字段,它是 80 个字符。我想将此字段放入 2 个字段 addr1 和 addr2,每个字段 40 个字符。我该怎么做。
saurabh
问问题
1318 次
4 回答
3
这适用于 T-SQL,但对于 PL/SQL 来说并没有太大的不同
declare @yourVar varchar(80)
select substring(@yourVar, 1, 40), substring(@yourVar, 40, 40)
于 2008-12-23T12:42:01.140 回答
2
对于plsql,它是substr(),所以选择substr(addr, 1, 40) as addr1, substr(addr, 40) as addr2 from ...
于 2008-12-23T12:45:57.620 回答
0
在第 40 位暴力砍掉 80 个字符的值会冒着在单词中间中断的风险。您可能想要执行以下操作:
- 用一个空格替换所有运行的空格。
- 找到位置 40 或之前的最后一个空白。
- 将所有内容放在第一个结果字段中该空白之前的所有内容。
- 将该空白之后的所有内容放在第二个结果字段中。
上述操作的具体细节将取决于您可以使用哪些工具(例如,仅 SQL,或从一个 DB 读取并使用单独的程序写入另一个 DB 等)
80 个字符的值可能会以这样一种方式填充,即“单词”之间的中断将要求结果值之一的长度超过 40 个字符以避免截断。
于 2008-12-23T14:34:37.463 回答
0
如果您将该表更改为具有两列而不是一列,我认为您的架构会更好。我更喜欢该解决方案来解析当前值。
于 2008-12-23T12:46:17.557 回答