是否可以在 SQL query
中检索特定行的特定列?
假设我从我的 SQL
表中选择,称为 my_table
,名称为:a,b 的行使用此查询文本:
"select * from my_table where row_names in ('a', 'b') order by row_names"
如何修改此查询文本以仅选择第 2、12、22、32、42 列而不是其所有 1000 列?
原文由 dan 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以在 SQL query
中检索特定行的特定列?
假设我从我的 SQL
表中选择,称为 my_table
,名称为:a,b 的行使用此查询文本:
"select * from my_table where row_names in ('a', 'b') order by row_names"
如何修改此查询文本以仅选择第 2、12、22、32、42 列而不是其所有 1000 列?
原文由 dan 发布,翻译遵循 CC BY-SA 4.0 许可协议
2个小鬼点
1. 单表1000列是针对RDBMS及其高度非规范化的表。
2. 行没有名字。
现在,如果您知道列的名称,请使用以下内容:
"select column_1,column_2 from my_table where primary_key_column in ('1','2');"
这里 column_1,column_2 是您想要的列的名称。
primary_key_column 唯一地定义您的行,并在括号中定义您需要检索的所有主键。
如果您只知道列号,请使用以下方法检索列名:
"SELECT Column_name FROM user_tab_columns where table_name = 'MY_TABLE' and Column_id in (1,2,5);"
希望这会有所帮助。
如需进一步参考 http://www.w3schools.com/sql/
原文由 Yatin Goyal 发布,翻译遵循 CC BY-SA 3.0 许可协议
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
将通配符
*
替换为您要检索的列名。但请阅读有关 SQL 标准的文档。您不太可能需要一个表中的 1.000 列。