在 sql 中的字符串中添加一个点
Adding a dot in a string in sql
我需要在两串数字中加一个点。 (例如“88188741478”)。我需要在结尾前添加 8 个字符。
结果应类似于“881.88741478”。
我需要返回几列,但只需要在其中 2 列中添加点。
最终输出应该是这样的:
380600001036641|8.84243987|44.41515810|0
我在 .bat 文件中使用 sqlplus 到 运行 .sql 文件。
我的代码是:
whenever sqlerror exit 90
set echo on
set verify off
set feedback off
set heading off
set linesize 257
set termout off
set pages 0
set pagesize 0
set space 0
spool C\file.txt
Select
First
||'|'|| Second
||'|'|| Third
||'|'|| STUFF(Fourth, length(Fourth)-8, 0, '.') as "FOURTH"
||'|'|| STUFF(Fifth, length(Fifth)-8, 0, '.') as "FIFTH"
||'|'|| Sixth
FROM table
WHERE Sixth='0'
AND NotSelectedParameter IN ('001', '003');
我不断收到此错误:
#ORA-00923: FROM keyword not found where expected
我尝试更改别名、检查保留字、使用子字符串、子字符串、左 + 右而不是东西,但我不断收到不同的错误。在我没有收到错误的时候,程序被阻止打印最后一个命令的行号(如果“AND NotSelectedParameter IN('001','003');”在第 12 行它打印 12 并且它自己被阻止直到我在 cmd 中按 z)。
我能做什么?
编辑:未封闭的标识符是这个问题中的格式错误。标识符在原始代码中被关闭。
关闭标识符。
错误:
||'|'|| STUFF(Fifth, length(Fifth)-8, 0, '.') as "FIFTH
右:
||'|'|| STUFF(Fifth, length(Fifth)-8, 0, '.') as "FIFTH"
函数中间不能有(未终止的)别名。
删除两个“AS ...”。
一个确实存在的函数是 regexp_replace。
regexp_replace('88188741478','(.*)([[:digit:]]{8})$','.')
给予
881.88741478
我需要在两串数字中加一个点。 (例如“88188741478”)。我需要在结尾前添加 8 个字符。 结果应类似于“881.88741478”。 我需要返回几列,但只需要在其中 2 列中添加点。
最终输出应该是这样的:
380600001036641|8.84243987|44.41515810|0
我在 .bat 文件中使用 sqlplus 到 运行 .sql 文件。
我的代码是:
whenever sqlerror exit 90
set echo on
set verify off
set feedback off
set heading off
set linesize 257
set termout off
set pages 0
set pagesize 0
set space 0
spool C\file.txt
Select
First
||'|'|| Second
||'|'|| Third
||'|'|| STUFF(Fourth, length(Fourth)-8, 0, '.') as "FOURTH"
||'|'|| STUFF(Fifth, length(Fifth)-8, 0, '.') as "FIFTH"
||'|'|| Sixth
FROM table
WHERE Sixth='0'
AND NotSelectedParameter IN ('001', '003');
我不断收到此错误:
#ORA-00923: FROM keyword not found where expected
我尝试更改别名、检查保留字、使用子字符串、子字符串、左 + 右而不是东西,但我不断收到不同的错误。在我没有收到错误的时候,程序被阻止打印最后一个命令的行号(如果“AND NotSelectedParameter IN('001','003');”在第 12 行它打印 12 并且它自己被阻止直到我在 cmd 中按 z)。
我能做什么?
编辑:未封闭的标识符是这个问题中的格式错误。标识符在原始代码中被关闭。
关闭标识符。
错误:
||'|'|| STUFF(Fifth, length(Fifth)-8, 0, '.') as "FIFTH
右:
||'|'|| STUFF(Fifth, length(Fifth)-8, 0, '.') as "FIFTH"
函数中间不能有(未终止的)别名。
删除两个“AS ...”。
一个确实存在的函数是 regexp_replace。
regexp_replace('88188741478','(.*)([[:digit:]]{8})$','.')
给予
881.88741478