【发布时间】:2015-01-19 20:51:35
【问题描述】:
我有两个长度为 10 个字符和 40 个字符的字段,分别命名为 HOS_NAME 和 HOS_NAME1。
根据旧要求,我需要在这两个字段中都设置 HOSPITAL_NAME。我使用
HOS_NAME)中,其余字符放在下一个字段(HOS_NAME1)中
substrb(HOSPITAL_NAME, 0, 10) AS HOS_NAME, substrb(HOSPITAL, 11) AS HOS_NAME1
但是,我需要满足一个新的要求:如果在前 10 个字符中找到空格,那么空格之后的剩余字符应该移动到下一个字段。那么,我该如何实现呢?
例如:HOSPITAL_NAME 是 'GRACE MEMORIAL HOSPITAL'
- 在现有设计下,
HOS_NAME为'GRACE MEMO',HOS_NAME1为'RIAL HOSPITAL'。 - 采用新设计时,
HOS_NAME应为'GRACE ',HOS_NAME1应为'MEMORIAL HOSPITAL'。
我怎样才能做到这一点?
【问题讨论】:
-
澄清一下,
HOS_NAME和HOS_NAME1目前都存储在HOSPITAL_NAME列中?如果第一个空格不在前 10 个字符内,那么HOS_NAME将是前 10 个字符,HOS_NAME1是其余字符? -
顺便说一下,
SUBSTRB()会返回令人困惑的结果,因为它返回的是 bytes 而不是 characters。对于后者,您需要SUBSTR()。