如何在sql中查找特定单元格的行和列号?

时间:2018-12-04 14:05:56

标签: sql oracle oracle-sqldeveloper

我在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

3 个答案:

答案 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)