我正在尝试创建一个SQL语句,它将从表中获取8个250列字段,并将它们转换为带行号的2000行。
我不知道如何逐个字符地阅读(大多数字符是空白的)。
如何使用将值增加一的变量?
我尝试从myTable中选择substr(myFieldA,varA,1)
但它不喜欢变量,我也如何做循环语句。
例如YYN YN N
我希望它显示如下行号。
001 Y
002 Y
003 N
004
005
006 Y
007 N
008
009 N
010
答案 0 :(得分:0)
您可以使用此查询拆分其中一个字段:
SELECT 'A' Field, r Col, SUBSTR(myFieldA,r,1) Val
FROM myTable
,(SELECT ROWNUM r FROM DUAL CONNECT BY LEVEL <= 250);
您可以对所有8列执行相同操作,例如:
SELECT 'A' Field, r Col, SUBSTR(myFieldA,r,1) Val
FROM myTable
,(SELECT ROWNUM r FROM DUAL CONNECT BY LEVEL <= 250)
UNION ALL
SELECT 'B' Field, r Col, SUBSTR(myFieldB,r,1) Val
FROM myTable
,(SELECT ROWNUM r FROM DUAL CONNECT BY LEVEL <= 250)
UNION ALL
... etc....
SELECT 'H' Field, r Col, SUBSTR(myFieldH,r,1) Val
FROM myTable
,(SELECT ROWNUM r FROM DUAL CONNECT BY LEVEL <= 250)
;