现在我必须使用查询来获取文本文件中的命令。然后从中删除双引号。最后,在 psql shell 中运行该文件。
如何一步删除 PostgreSQL中的所有函数?
我正在尝试构建一个查询以将旧表中的多个列聚合在一起,该表存储在类似的结构中,如下所示:
CREATE TEMPORARY TABLE foo AS
SELECT * FROM ( VALUES
(1,'Router','Networking','Sale',NULL),
(2,NULL,'Router','Networking','Sale'),
(3,NULL,NULL,'Networking','Sale'),
(4,NULL,NULL,NULL,NULL)
) AS t(id,tag_1,tag_2,tag_3,tag_4);
Run Code Online (Sandbox Code Playgroud)
这是我要构建的查询的示例:
SELECT ID, json_build_array(Tag_1, Tag_2, Tag_3, Tag_4) AS tags
FROM table
Run Code Online (Sandbox Code Playgroud)
问题是上面的查询将行中的 NULL 值添加到数组中:
ID Tags
--------------------------------------------------
1 ['Router', 'Networking', 'Sale', null]
2 [null, 'Router', 'Networking', 'Sale']
3 [null, null, 'Networking', 'Sale']
4 [null, null, null, null]
Run Code Online (Sandbox Code Playgroud)
我想避免编写过于复杂的CASE WHEN语句来过滤掉 NULL,而且我对使用 PostgreSQL 的 JSON 数据类型还是个新手。在 Postgres 中构建 JSON 数组时,是否可以避免包含 NULL?
每当我跑步时,sqlcmd我都会收到“找不到命令”
sqlcmd -S localhost -U SA -P '<YourPassword>'
sqlcmd: command not found
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
此命令给出表的上次更新日期
SELECT UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'MyDB'
AND TABLE_NAME = 'MyTable'
Run Code Online (Sandbox Code Playgroud)
但我想找到表的特定列的上次更新时间。我不能使用触发器,因为我想知道系统表中特定列的上次更新时间。
我希望我能很好地解释我的问题。
我从排序分区上的聚合生成了以下虚拟列,
MIN(picture_id) OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Run Code Online (Sandbox Code Playgroud)
但是,当我执行它时,我得到以下信息。
Msg 11305, Level 15, State 10, Line 12
The Parallel Data Warehouse (PDW) features are not enabled.
Run Code Online (Sandbox Code Playgroud)
不过,这就是有趣的地方,没有分区上的排序顺序,它可以工作:
MIN(picture_id) OVER ( PARTITION BY [360_set] )
Run Code Online (Sandbox Code Playgroud)
此外,ROW_NUMBER()窗口函数(不是聚合函数)在分区上以显式顺序工作。
ROW_NUMBER() OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Run Code Online (Sandbox Code Playgroud)
为什么所需的语句不起作用?这是在哪里记录的?版本信息被请求,这是我在帮助→关于中的内容。
Microsoft SQL Server Management Studio 10.0.5512.0
Microsoft Analysis Services Client Tools 10.0.5500.0
Microsoft Data Access Components (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 9.10.9200.16635
Microsoft …Run Code Online (Sandbox Code Playgroud) 我想问一个关于仅使用VIEWs将 PostgreSQL ltree 结构转换为仅具有一个查询的嵌套集结构的方法的问题。
例如,我有一个表,其中包含相互关联的数据,如下图所示:
所以,表声明是
KeywordLtree(id INT PRIMARY KEY, value TEXT, path ltree);
-- And the data is:
pk | value | path |
0 | 'A' | '' |
0 | 'B' | '1' |
0 | 'C' | '2' |
0 | 'D' | '1.3' |
0 | 'E' | '1.4' |
0 | 'F' | '1.5' |
0 | 'G' | '2.6' |
0 | 'H' | '2.7' |
Run Code Online (Sandbox Code Playgroud)
我必须将此表转换为这样的表:
KeywordSets(id INT PRIMARY KEY, …Run Code Online (Sandbox Code Playgroud) 名为 的相关表emp包含以下数据:
CREATE TEMPORARY TABLE emp AS
SELECT * FROM ( VALUES (1,'A'), (2,'B'), (3,'C') );
ID Name
-- ----
1 A
2 B
3 C
Run Code Online (Sandbox Code Playgroud)
数据操作操作的输出或结果集应如下所示:
ID Name
-- ----
1 A
1 A
2 B
2 B
3 C
3 C
Run Code Online (Sandbox Code Playgroud)
必须获得符合以下条件的输出:
注意:这个场景是一个面试官给我带来的。
我有一个 Postgres 9.2 DB,其中某个表有很多不可移动的死行:
# SELECT * FROM public.pgstattuple('mytable');
table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent
------------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------
2850512896 | 283439 | 100900882 | 3.54 | 2537195 | 2666909495 | 93.56 | 50480156 | 1.77
(1 row)
Run Code Online (Sandbox Code Playgroud)
正常的吸尘也显示许多不可移动的死行:
# VACUUM VERBOSE mytable;
[...]
INFO: "mytable": found 0 removable, 2404332 nonremovable row versions in 309938 out of 316307 pages
DETAIL: 2298005 dead row versions cannot be removed yet.
There were 0 unused …Run Code Online (Sandbox Code Playgroud) 我正在阅读有关使用 PostgreSQL 进行网络压缩的内容,以查看是否有任何东西可以提供允许大结果集通过网络传输到远程 Web 服务器的内容。似乎没有这种东西。有没有解决方案可以做到这一点,这不是 SSL?
似乎有一个涉及 SSL 的解决方案。阅读了与此相关的线程后,似乎该解决方案不再可取,因为它使系统容易受到CRIME worldwide错误的影响。
尽管不可取,但您似乎至少可以在当前重新启用 SSL 压缩,OPENSSL_DEFAULT_ZLIB但将来它将被删除,并且当前在 openssl 中的编译时被禁用。
no-zlib [default]
no-zlib-dynamic [default]
Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 上安装了 SQL Server 2016 Developer Edition,可免费用于开发目的:
SQL Server 2016 SP1 Developer 是一个功能齐全的免费版本,许可在非生产环境中用作开发和测试数据库。
我也想在 Ubuntu 上安装 SQL Server 2017。对于 Windows,在 SQL Server 下载页面上,有三个选项 - 试用评估、SQL Express(免费但有限)和 SQL Developer(对于非生产环境免费)。
但是,对于 Linux,只有在 Red Hat、Ubuntu 或 SUSE 上安装的链接。
在 Ubuntu 上安装时,SQL Server 2017 (v.Next) 说:
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [174] days left in the evaluation period.
Run Code Online (Sandbox Code Playgroud)
是否有适用于 Linux 的 SQL Server 2017 …
postgresql ×5
sql-server ×2
ubuntu ×2
array ×1
compression ×1
duplication ×1
dynamic-sql ×1
functions ×1
hierarchy ×1
json ×1
license ×1
mysql ×1
network ×1
vacuum ×1