拼SQL的高手帮个忙

来源:百度知道 编辑:UC知道 时间:2024/06/02 17:37:15
我要从A表中查出数据,但是要显示的字段是从B表中取出的,这个SQL应该怎么拼啊?

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