标签: fields

MySQL 中的 ORDER BY FIELD() 如何在内部工作

我了解ORDER BY子句的工作原理以及FIELD()函数的工作原理。我想了解的是他们两个如何一起工作进行排序。如何检索行以及如何导出排序顺序

+----+---------+
| id |  name   |
+----+---------+
|  1 | stan    |
|  2 | kyle    |
|  3 | kenny   |
|  4 | cartman |
+----+---------+ 

SELECT * FROM mytable WHERE id IN (3,2,1,4) ORDER BY FIELD(id,3,2,1,4)
Run Code Online (Sandbox Code Playgroud)

上面的查询将导致

+----+---------+
| id |  name   |
+----+---------+
|  3 | kenny   |
|  2 | kyle    |
|  1 | stan    |
|  4 | cartman |
+----+---------+ 
Run Code Online (Sandbox Code Playgroud)

类似于说 ORDER BY 3, 2, 1, …

mysql order-by fields

52
推荐指数
1
解决办法
15万
查看次数

查询以输出查询、表或视图的列名和数据类型

是否有 PostgreSQL 查询或命令返回查询、表或视图的字段名称和字段类型?

例如,如果应用于简单的 SELECT 查询的解决方案SELECT * from person应该返回如下列表:

Column Name   | Column Type
===========================
First Name    | character
Last Name     | character
Age           | integer
Date of Birth | date
Run Code Online (Sandbox Code Playgroud)

我查看了information_schema下面的答案中描述的视图,它似乎很好地涵盖了表格,我怀疑它也涵盖了视图,但我还没有检查过。

最后一个是任意但有效的 SELECT 查询,例如涉及数据库中的JOINSUNIONS等。是否有内置过程或其他存储过程或脚本可以为任何有效的 QUERY 返回相同的结果?

我正在开发一个程序来创建数据和查询表单,数据验证和对返回的数据执行函数需要这些信息。

postgresql datatypes catalogs fields

26
推荐指数
1
解决办法
14万
查看次数

列与字段:我是否错误地使用了这些术语?

我在这里感到有点尴尬,我一直将术语“列”和“字段”完全互换使用,这在最近的技术讨论中引起了一些混乱。

但是,有人告诉我,这是不正确的,它应该是(将每个术语翻译成电子表格术语,忽略数据类型和所有其他使数据库有用的东西):

  • 数据库列:就像电子表格列
  • 数据库记录:就像一个电子表格行
  • 数据库字段:就像电子表格“单元格”(特定行的特定列)

这是正确的吗?我可以发誓,列和字段比这更可互换使用。我当然去过。

所以我们向表中添加字段,而是向表中添加,并且字段仅在谈论记录中的数据时才相关?

关于列与字段的其他想法?

编辑:澄清一下,当前上下文是 MS SQL Server。我在 SQL Server 之前的背景是 MS Access,这可能会影响我对这些术语的使用。

terminology fields

22
推荐指数
3
解决办法
3万
查看次数

为具有大量列的表(不是 SELECT *)高效编写 SELECT 查询

由于 GIS 软件的限制,我需要为数据库中的 200 多个表中的每一个编写选择查询。查询需要选择除 SHAPE 列之外的所有列。

是否有一种有效的方法来获取每个表的所有字段名称 - 用于编写选择查询?

我试过的:

  1. 我认为这可以通过 SQL Developer(免费)实现。但不幸的是,由于 IT 挑战,我没有 SQL Developer。

  2. 我知道当我SELECT *在 Oracle 中的表上创建视图时,查询被转换为显式选择单个字段。所以我可以 a)SELECT *为每个表创建一个视图,b) 获取视图定义,以及 c) 为每个表编写查询。这可能比手动输入每个字段名称要快,但不会快很多。

如何有效地为具有大量列的表编写选择查询?

oracle select fields

6
推荐指数
1
解决办法
1141
查看次数

解析 COPY 的二进制格式以访问 tsrange

tsrange 如何以二进制形式存储?

例如创建表

CREATE TABLE public.test (t tsrange);
INSERT INTO test VALUES ('[2010-01-01 14:30, 2010-01-01 15:30)');
INSERT INTO test VALUES ('[2011-01-01 14:31, 2015-11-01 15:30)');
INSERT INTO test VALUES ('[2017-01-01 14:31, 2018-11-01 15:30)');
COPY test TO '/tmp/pgcopy' WITH (FORMAT binary);
COPY test TO '/tmp/pgcopy.csv' WITH (FORMAT csv);
Run Code Online (Sandbox Code Playgroud)

它输出:

 cat /tmp/pgcopy.csv                                                                                                                                                                                                  
"[""2010-01-01 14:30:00"",""2010-01-01 15:30:00"")"
"[""2011-01-01 14:31:00"",""2015-11-01 15:30:00"")"
"[""2017-01-01 14:31:00"",""2018-11-01 15:30:00"")"


hexdump -C /tmp/pgcopy
00000000  50 47 43 4f 50 59 0a ff  0d 0a 00 00 00 00 00 00  |PGCOPY..........|
00000010 …
Run Code Online (Sandbox Code Playgroud)

postgresql dump date-format fields copy

4
推荐指数
1
解决办法
3791
查看次数