我在SQL数据库中有一个表,我想找到像坐标一样的单元格的位置,反之亦然。这是一个示例:
0 1 2 3
1 a b c
2 g h i
3 n o j
当我要求i
时,我想得到row=2 and column=3
。当我要求输入row=2 and column=3
的单元格时,我想获取i
。
答案 0 :(得分:4)
您需要将矩阵存储在表中,并指定像这样的列和行
create table matrix (
row int,
column int,
value varchar2(20)
);
然后您像这样插入数据
insert into matrix values (1, 1, 'a');
insert into matrix values (1, 2, 'b');
//and so on.
然后您只需使用两个查询即可找到所需的内容
select column, row from matrix where value = 'i';
select value from matrix where column = 2 and row = 3;
答案 1 :(得分:2)
在Oracle中,您可以这样做:
select "3"
from t
where "0" = 2;
不建议将列命名为数字。您的整个数据模型对于SQL来说很奇怪。更好的表示是:
row col val
1 1 a
1 2 b
1 3 c
2 1 g
. . .
那么你可以做:
select val
from grid
where row = 2 and col = 3;
答案 2 :(得分:0)
创建一个主键列,例如'id',例如,相关行为'col'
select col from db where id = 2;
这将返回一个特定的单元格(x,2)