替代SQL中的空值的子字符串
我在Oracle SQL中有一个update语句,在第9个字节的MISC_标志后连接N替代SQL中的空值的子字符串,sql,string,oracle,sql-update,substring,Sql,String,Oracle,Sql Update,Substring,我在Oracle SQL中有一个update语句,在第9个字节的MISC_标志后连接N UPDATE SYS_CODE SET MISC_FLAGS = SUBSTR(MISC_FLAGS, 1, 9) || 'N', mod_date_time = sysdate, user_id = 'Feature Number' WHERE REC_TYPE = 'X' AND CODE_TYPE = 'XXX' AND CODE_ID = 'XXXX'; 但在某
UPDATE SYS_CODE
SET MISC_FLAGS = SUBSTR(MISC_FLAGS, 1, 9) || 'N',
mod_date_time = sysdate,
user_id = 'Feature Number'
WHERE REC_TYPE = 'X'
AND CODE_TYPE = 'XXX'
AND CODE_ID = 'XXXX';
但在某些情况下,我们将Misc标志中的示例8和9字节设置为null。在这些情况下子串不考虑第八和第九字节,更新第八字节到n而不是第十。
有人有其他选择吗?我想你想要
RPAD()
:
如果MISC_FLAGS
少于9个字符,则会向其添加空白字符。您可以使用RPAD()
。例如:
UPDATE SYS_CODE SET
MISC_FLAGS = RPAD(SUBSTR(MISC_FLAGS,1,9), 9, ' ') || 'N',
mod_date_time = sysdate,
user_id = 'Feature Number'
WHERE REC_TYPE = 'X' AND CODE_TYPE= 'XXX' AND CODE_ID = 'XXXX';
我觉得下面的RPAD-->SUBSTR组合一定会对您有所帮助 这是一份感谢你帮助的信
UPDATE SYS_CODE SET
MISC_FLAGS = SUBSTR(RPAD(MISC_FLAGS, 9, '0'),1,9)|| 'N',
mod_date_time = sysdate,
user_id = 'Feature Number'
WHERE REC_TYPE = 'X' AND CODE_TYPE= 'XXX' AND CODE_ID = 'XXXX';
然后你应该考虑并告诉我们在第八和第九的位置你想要什么样的角色。
UPDATE SYS_CODE SET
MISC_FLAGS = SUBSTR(RPAD(MISC_FLAGS, 9, '0'),1,9)|| 'N',
mod_date_time = sysdate,
user_id = 'Feature Number'
WHERE REC_TYPE = 'X' AND CODE_TYPE= 'XXX' AND CODE_ID = 'XXXX';