gpt4 book ai didi

SQL 按字母顺序列出所有列名

转载 作者:行者123 更新时间:2023-12-03 12:37:39 25 4
gpt4 key购买 nike

我知道

SELECT * FROM Table

将列出表中的所有列,但我有兴趣按字母顺序列出这些列。

比如说,我有三列,“姓名”、“年龄”和“性别”。

我想要按格式组织的列
|age| |name| |sex|

可以用 SQL 做到这一点吗?

最佳答案

是的,也不是 :-)

SQL 本身并不关心列出现的顺序,但是,如果您要使用:

select age, name, sex from ...

你会发现它们可能是按这个顺序出现的(尽管我不确定 SQL 标准是否要求这样做)。

现在您可能不想这样做,但有时生活并不公平:-)

您还可以使用 DBMS 数据定义表来动态构建查询。这是不可移植的,但大多数 DBMS 提供这些表(例如 DB/2 的 SYSIBM.SYSCOLUMNS ),您可以从那里以有序的方式选择列名。就像是:
select column_name from sysibm.syscolumns
where owner = 'pax' and table_name = 'movies'
order by column_name;

然后使用该查询的结果来构建真正的查询:
query1 = "select column_name from sysibm.syscolumns" +
" where owner = 'pax' and table_name = 'movies'" +
" order by column_name"
rs = exec(query1)
query2 = "select"
sep = " "
foreach colm in rs:
query2 += sep + colm["column_name"]
sep = ", "
query2 += " from movies order by rating"
rs = exec(query2)
// Now you have the rs recordset with sorted columns.

但是,您确实应该仔细检查所有选择 * 的查询。 - 在绝大多数情况下,这是不必要且低效的。数据的表示可能应该由表示层完成,而不是 DBMS 本身——应该让 DBMS 以尽可能有效的方式返回数据。

关于SQL 按字母顺序列出所有列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4075800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com