我如何将一个sql变量分成2
Posted
技术标签:
【中文标题】我如何将一个sql变量分成2【英文标题】:how do i divide a sql variable into 2 【发布时间】:2008-12-23 12:39:48 【问题描述】:我在 sql 中有一个名为 address 的字段,它是 80 个字符。 我想将此字段放入 2 个字段 addr1 和 addr2,每个字段 40 个字符。 我该怎么做。
【问题讨论】:
【参考方案1】:这适用于 T-SQL,但对于 PL/SQL 并没有太大的不同
declare @yourVar varchar(80)
select substring(@yourVar, 1, 40), substring(@yourVar, 40, 40)
【讨论】:
+1(在 oracle 中函数是 SUBSTR)download.oracle.com/docs/cd/B28359_01/olap.111/b28126/…【参考方案2】:对于plsql,是substr(),所以select substr(addr, 1, 40) as addr1, substr(addr, 40) as addr2 from ...
【讨论】:
嗨,我们必须从 wat 中进行选择。我已经从 1 个光标中选择了 addr 变量,需要对其进行划分 所以如果你有一个变量 addr 我假设你正在编写一个存储过程,所以声明两个变量 addr1 和 addr2 并使用 addr1 := substr(addr, 1, 40); addr2 := substr(addr, 40);【参考方案3】:我认为如果您将该表更改为具有两列而不是一列,您的架构会更好。我更喜欢该解决方案来解析当前值。
【讨论】:
【参考方案4】:在第 40 位暴力砍掉 80 个字符的值会冒着在单词中间中断的风险。您可能想要改为执行以下操作:
-
用一个空格替换所有运行的空白。
在第 40 位或之前找到最后一个空白。
将所有内容放在第一个结果字段中该空白之前的所有内容。
将所有内容放在第二个结果字段中该空白之后。
上述操作的具体细节将取决于您可以使用哪些工具(例如,仅 SQL,或从一个数据库读取并使用单独的程序写入另一个数据库等)
80 个字符的值可能会以这样一种方式填充,即“单词”之间的中断将要求结果值之一的长度超过 40 个字符以避免截断。
【讨论】:
以上是关于我如何将一个sql变量分成2的主要内容,如果未能解决你的问题,请参考以下文章