拼SQL的高手帮个忙
来源:百度知道 编辑:UC知道 时间:2024/06/02 17:37:15
select (这里面的内容是从B表里查出来的) from A
从B表里查出的列会是多个。
高手给指点一下。 先谢谢了
select (这样就能取出A表的列名) from B where table_name = 'A'
比如
select * from B where table_name='A'
就会得到 a_id,a_name
然后我以查到的这两个列名做为条件,显示出来
select a_id,a_name from A
不知道这样说,清楚不
select b.a_id, b.a_name from A a inner join B b a.a_id = b.a_id
不是这样的,因为是从B表中查取的数据,所以我并不知道他起的列名是什么,我用a_id,a_name只是说明一下,比如是从B表中查出的列名是这两个。
并且B表中查出的列名肯定可以和A表中的列名对应上。
CREATE OR REPLACE PROCEDURE CC201.select_example
IS
CURSOR SELECT_NAME IS SELECT DISTINCT(SITE_ID) from TABLE_SITE;
NAME_TEMP VARCHAR2(255);
STR VARCHAR2(32767);
SELECT_STR VARCHAR2(32767);
TABLE_SITE_PART_REC TABLE_SITE_PART%ROWTYPE;
BEGIN
OPEN SELECT_NAME ;
FETCH SELECT_NAME INTO NAME_TEMP;
STR := NAME_TEMP;
LOOP
FETCH SELECT_NAME INTO NAME_TEMP;
EXIT WHEN SELECT_NAME%NOTFOUND;
STR := STR || ',' || NAME_TEMP;
DBMS_OUTPUT.PUT_LINE('STR = '||STR);
END LOOP;
IF STR IS NOT NULL THEN
SELECT_STR := 'SELECT ' || STR || ' FROM TABLE_SITE_PART' ;
END IF;
EXECUTE IMMEDIATE SELECT_STR
INTO TABLE_SITE_PART_REC;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Ending!!');
END;
/
给你写了一个例子就是从表TABLE_SITE 中取出DISTINCT(SITE_ID)列作为表TABLE_SITE_PART的列名进行检索,看看能不能满足你的要求
select