从表中选择字段名称,以从另一个表中选择值 [英] Select Fields name from a table, to select values from another table

查看:86
本文介绍了从表中选择字段名称,以从另一个表中选择值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是我有2个表格



表格1



TYPE |价值

--------------------

1 | NUM3

2 | NUM4

1 | NUM5

1 | NUM6

2 | NUM7





表2



NUM1 | NUM2 | NUM3 | NUM4 | NUM5 | NUM6 | NUM7

----------------------------------------- -----------







我只想选择字段在表2中,表1中存在名称和类型为1,如果我从表1中的任何行改变类型,则自动更改表2中的查询(字段)



感谢您的时间和帮助!!!

THE PROBLEM IS THAT I HAVE 2 TABLES

TABLES 1

TYPE | VALUES
--------------------
1 | NUM3
2 | NUM4
1 | NUM5
1 | NUM6
2 | NUM7


TABLE 2

NUM1 | NUM2 | NUM3 | NUM4 | NUM5 | NUM6 | NUM7
----------------------------------------------------



I JUST WANT TO SELECT THE FIELDS IN TABLE 2, THAT FIELDS NAME EXIST IN TABLE 1 AND TYPE IS 1. AND IF I CHANGE THE TYPE FROM ANY ROW IN TABLE 1, AUTOMATICALLY CHANGE THE QUERY (FIELDS) FROM TABLE 2

THANKS FOR YOUR TIME AND HELP!!!

推荐答案

/ **

字段列表表格



id类型值列表

1 1 CID

2 1 cno

3 2 Att

4 2文件

5 1 courseid



字段类型1有一张桌子

字段是类型2有另一个表

** /



声明@column_name varchar(100)

声明@column_names varchar(100)

DECLARE @first_loop位

SET @column_names =''''

SET @first_loop = 0;

声明c CURSOR FOR

选择值列表Fr. om fieldlist其中type = 1



打开c



从c INTO @column_name获取下一个

而@@ FETCH_STATUS = 0

BEGIN

IF @first_loop = 0

BEGIN

SET @column_names = @column_name;

SET @first_loop = 1;

print''1''+ @column_name

END;

ELSE

BEGIN

SET @column_names = @ column_names +'',''+ @column_name;

print @column_name

END;

FETCH NEXT FROM c into @column_name;

END



关闭c

deallocate c

SELECT @column_names

DECLARE @sqltext varchar(max)

SET @sqlText = N''SELECT TOP 10''+ @column_names +''FROM dbo.TBL_TEST''

Exec(@sqlText)
/**
FIELD LIST TABLE STRU

id type valueslist
1 1 CID
2 1 cno
3 2 Att
4 2 document
5 1 courseid

fields are type 1 have one table
fields are type 2 have another table
**/

Declare @column_name varchar(100)
declare @column_names varchar(100)
DECLARE @first_loop bit
SET @column_names = ''''
SET @first_loop = 0;
Declare c CURSOR FOR
Select valueslist From fieldlist Where type=1

Open c

Fetch Next from c INTO @column_name
While @@FETCH_STATUS = 0
BEGIN
IF @first_loop = 0
BEGIN
SET @column_names = @column_name;
SET @first_loop = 1;
print ''1'' + @column_name
END;
ELSE
BEGIN
SET @column_names =@column_names+ '', '' + @column_name;
print @column_name
END;
FETCH NEXT FROM c into @column_name;
END

close c
deallocate c
SELECT @column_names
DECLARE @sqltext varchar(max)
SET @sqlText = N''SELECT TOP 10 '' + @column_names + '' FROM dbo.TBL_TEST''
Exec (@sqlText)


这篇关于从表中选择字段名称,以从另一个表中选择值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆