SQL“while”将表数据读取到变量
如何编写while循环,将表中的数据填充到单独查询中使用的变量? 例:从表1中选择项目 如果我可以在@var1列项下获得所有结果,然后在单独的查询中使用它,如:SQL“while”将表数据读取到变量,sql,loops,while-loop,Sql,Loops,While Loop,如何编写while循环,将表中的数据填充到单独查询中使用的变量? 例:从表1中选择项目 如果我可以在@var1列项下获得所有结果,然后在单独的查询中使用它,如: select * from Table2 where @var1 = Item_table2 <-- a random column in table2 此查询应将@var1从A0001到E0032匹配到表2中的Item_table2列。您不需要循环 select * from Table2 where Item_tabl
select *
from Table2
where @var1 = Item_table2 <-- a random column in table2
此查询应将@var1从A0001到E0032匹配到表2中的Item_table2列。您不需要循环
select * from Table2 where Item_table2 in (select ITEM from Table1)
如果确实需要循环/循环,请使用以下选项:
DECLARE @var1 varchar(100)
DECLARE ITEM_CURSOR CURSOR FOR
SELECT ITEM FROM Table1
OPEN ITEM_CURSOR
FETCH NEXT FROM ITEM_CURSOR INTO @var1
WHILE @@FETCH_STATUS = 0
BEGIN
/*Your separate query*/
SELECT * FROM Table2 where @var1 = Item_table2
FETCH NEXT FROM CURSOR_SMS INTO @var1
END
CLOSE ITEM_CURSOR;
DEALLOCATE ITEM_CURSOR;
这是你的第一张桌子:
mysql> select * from item_table1;
+-------+
| item |
+-------+
| A0001 |
| B0001 |
| C0003 |
| D0005 |
| E0032 |
+-------+
5 rows in set (0.01 sec)
现在,我们需要基于此表创建一个视图。视图是@var1在问题中调用的等效概念:
让我们用自己的话检查一下我们的视图项_table2@var1:
mysql> select * from item_table2;
+-------+
| item |
+-------+
| A0001 |
| B0001 |
| C0003 |
| D0005 |
| E0032 |
+-------+
5 rows in set (0.00 sec)
现在,您可以从item_table2中选择item_table1中存在的任何项目,如下所示:
select it2.item from item_table2 it2 where it2.item='A0001'
您使用的是哪种数据库管理系统?
mysql> select * from item_table2;
+-------+
| item |
+-------+
| A0001 |
| B0001 |
| C0003 |
| D0005 |
| E0032 |
+-------+
5 rows in set (0.00 sec)
select it2.item from item_table2 it2 where it2.item='A0001'