小编Eva*_*oll的帖子

在 SQL Server 中连接字符串的最有效方法是什么?

我有这个代码:

DECLARE @MyTable AS TABLE
(
   [Month] INT,
   Salary INT
);

INSERT INTO @MyTable VALUES (1,2000), (1,3100);

SELECT [Month], Salary FROM @MyTable;
Run Code Online (Sandbox Code Playgroud)

输出:

表格图形

我想NVARCHAR合并工资(按月分组),这样它就会是这样的:'2000,3100'

我将如何有效地做到这一点?

sql-server aggregate t-sql concat

9
推荐指数
2
解决办法
3523
查看次数

PostgreSQL bytea 与 smallint[]

我希望将大型 (100Mb -- 1 GB) 多通道时间序列数据导入 PostgreSQL 数据库。数据来自EDF 格式的文件,这些文件将数据分块成“记录”或“时期”,每个“记录”或“时期”通常为几秒钟。每个时期的记录将每个数据通道的信号保存为短整数的顺序数组。

我被要求将文件存储在数据库中,在最坏的情况下存储为 BLOB。鉴于此,我想研究可以让我对数据库中的数据做更多事情的选项,例如促进基于信号数据的查询。

我最初的计划是将数据存储为每个纪元记录一行。我想要权衡的是是否将实际信号数据存储为 bytea 或 smallint[](甚至 smallint[][])类型。有人可以推荐一个吗?我对存储和访问成本感兴趣。用法很可能是插入一次,偶尔读取,从不更新。如果一个更容易包装为自定义类型,以便我可以添加用于分析比较记录的函数,那就更好了。

毫无疑问,我缺乏细节,所以请随时对您希望我澄清的内容添加评论。

postgresql datatypes blob bytea

9
推荐指数
1
解决办法
921
查看次数

如何删除我在 PostgreSQL 中的所有函数?

现在我必须使用查询来获取文本文件中的命令。然后从中删除双引号。最后,在 psql shell 中运行该文件。

如何一步删除 PostgreSQL中的所有函数?

postgresql dynamic-sql functions

9
推荐指数
2
解决办法
1万
查看次数

PostgreSQL 中的一字节“char”类型究竟是如何工作的?

我经常看到人们谈论"char"。我从来没有用过它。它在文档中定义为,

“char”类型(注意引号)与 char(1) 的不同之处在于它只使用一个字节的存储空间。它在系统目录中作为一种简单的枚举类型在内部使用。

并进一步,

"char"  1 byte  single-byte internal type
Run Code Online (Sandbox Code Playgroud)

那么,如果它是一个字节,那么域是什么,您将如何使用它?它是签名的还是未签名的?在@Erwin Brandstetter 的这篇文章中,他对此进行了阐述,但我仍然感到困惑。他正在使用ascii()and chr(),并提供了这个

SELECT i
     , chr(i)::"char"        AS i_encoded
     , ascii(chr(i)::"char") AS i_decoded
FROM   generate_series(1,256) i;
Run Code Online (Sandbox Code Playgroud)

这在 10 点到 11 点之间做一些非常奇怪的事情。

  i  | i_encoded | i_decoded 
-----+-----------+-----------
...
   8 | \x08      |         8
   9 |           |         9
  10 |          +|        10
     |           |           -- WTF is going on here.
  11 | \x0B      |        11
  12 | \x0C      |        12 …
Run Code Online (Sandbox Code Playgroud)

postgresql datatypes storage cast

9
推荐指数
1
解决办法
1998
查看次数

用row_number() 和dense_rank() 解决“差距和孤岛”?

如何用解决的孤岛部分。我现在已经看过几次了,我想知道是否有人可以解释一下,dense_rank()row_number()

让我们使用这样的东西作为示例数据(示例使用 PostgreSQL),

CREATE TABLE foo
AS
  SELECT x AS id, trunc(random()*3+1) AS x
  FROM generate_series(1,50)
    AS t(x);
Run Code Online (Sandbox Code Playgroud)

这应该产生这样的东西。

 id | x 
----+---
  1 | 3
  2 | 1
  3 | 3
  4 | 3
  5 | 3
  6 | 2
  7 | 3
  8 | 2
  9 | 1
 10 | 3
...
Run Code Online (Sandbox Code Playgroud)

我们想要的是这样的...... z我们可以使用的价值在哪里GROUP BY

 id | x | grp
----+------
  1 | 3 | z
  2 | …
Run Code Online (Sandbox Code Playgroud)

postgresql window-functions gaps-and-islands rank

9
推荐指数
1
解决办法
8228
查看次数

在 Linux 中获取“sqlcmd sqlcmd: command not found”?

每当我跑步时,sqlcmd我都会收到“找不到命令”

sqlcmd -S localhost -U SA -P '<YourPassword>'
sqlcmd: command not found
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

sql-server ubuntu sql-server-2017

9
推荐指数
1
解决办法
2万
查看次数

PostgreSQL 自定义操作符 UUID 到 varchar

我有一个相当复杂的 Postgres 数据库,其中许多 UUID 字段被错误地存储为 VARCHAR。我想逐步迁移它们,但不幸的是,这样做打破了我的所有观点,因为 Postgres 没有内置的varchar = uuid. 而是重写我的所有视图或尝试一次大规模迁移,我想临时创建一个 uuid = varchar 运算符,直到迁移完成。

我以前从未创建过自定义运算符,并且我在下面的尝试不起作用:

CREATE OR REPLACE FUNCTION uuid_equal_varchar (varchar, uuid)
RETURNS boolean AS 'SELECT $1::text = $2::text;' LANGUAGE sql IMMUTABLE;

CREATE OPERATOR = (
    leftarg = character varying,
    rightarg = uuid,
    procedure = uuid_equal_varchar,
    commutator = =
);
Run Code Online (Sandbox Code Playgroud)

然而,这个运营商打破了一切。包括一个简单的 varchar = varchar 比较(见下文):

SELECT * FROM test WHERE pk_test = '123';
ERROR:  invalid input syntax for uuid: "123"
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释我做错了什么吗?我是否试图尝试不可能的事情?

postgresql datatypes cast operator uuid

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

理解 sys.objects、sys.system_objects 和 sys.sysobjects?

在这个问题中,我正在使用sys.sysobjects. 但是,提到的答案之一sys.system_objects。我只是想知道这些表之间有什么区别?

  • sys.objects
  • sys.system_objects
  • sys.sysobjects

sysobjects 有更多的东西。

> SELECT count(*) FROM sysobjects;
2312

> SELECT count(*) FROM sys.system_objects;
2201

> SELECT count(*) FROM sys.objects;
> 111

SELECT count(*)
FROM sys.sysobjects
WHERE NOT EXISTS (
  SELECT 1
  FROM sys.system_objects
  WHERE system_objects.object_id = sysobjects.id
);
> 111
Run Code Online (Sandbox Code Playgroud)

sql-server database-internals system-tables

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

MySQL:可以安全地杀死卡在“等待表元数据锁定”中的事务

早上/下午/晚上好。

我试图在有几百万行的表中添加一列。这是完整的查询:

alter table date_tasks_mark add column noDuplicate int unsigned not null default 0
Run Code Online (Sandbox Code Playgroud)

不过好像卡住了。

| 28893 | root         | localhost | database_name   | Query   | 10668 | Waiting for table metadata lock | alter table date_tasks_marks add column noDuplicate int unsigned not null default 0
Run Code Online (Sandbox Code Playgroud)

终止查询对我来说安全还是会破坏我的表(它已经处于这种状态大约半小时)?

mysql innodb deadlock locking mysql-5.6

9
推荐指数
1
解决办法
2万
查看次数

如何检查当前连接是否处于事务中?

我需要我的程序代码来确保逻辑的某些部分在事务中执行。

什么查询会告诉我当前的交易 ID/其他信息,使我能够确定我是否处于交易中?

BEGIN;
-- How to check if I am in a transaction?
COMMIT;
Run Code Online (Sandbox Code Playgroud)

postgresql transaction

9
推荐指数
2
解决办法
6125
查看次数