Variables PL/SQL Select-将列数据转换为每行1个字符的行
我正在尝试创建一个SQL语句,该语句将从一个表中获取八个250列字段,并将它们转换为2000行的行号。 我不知道如何逐字读,大多数字都是空白的。 如何使用将值增加1的变量? 我尝试从myTable中选择substrmyFieldA、varA和1 但它不喜欢变量,也不喜欢循环语句 YYN YN 我希望它以行号显示如下Variables PL/SQL Select-将列数据转换为每行1个字符的行,variables,loops,select,plsql,substr,Variables,Loops,Select,Plsql,Substr,我正在尝试创建一个SQL语句,该语句将从一个表中获取八个250列字段,并将它们转换为2000行的行号。 我不知道如何逐字读,大多数字都是空白的。 如何使用将值增加1的变量? 我尝试从myTable中选择substrmyFieldA、varA和1 但它不喜欢变量,也不喜欢循环语句 YYN YN 我希望它以行号显示如下 001 Y 002 Y 003 N 004 005 006 Y 007 N 008 009 N 010 您可以使用此查询拆分其中一个字段: SELECT 'A' Field,
001 Y
002 Y
003 N
004
005
006 Y
007 N
008
009 N
010
您可以使用此查询拆分其中一个字段:
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)
;