小编Eva*_*oll的帖子

Oracle 是否支持 VALUES 表达式构造?

PostgreSQL 支持 SQL 规范的VALUES表达式,规范称为<table value constructor>

SELECT *
FROM (VALUES
  (1, 'one'),
  (2, 'two'),
  (3, 'three')
) AS t(num,letter);
 num | letter
-----+--------
   1 | one
   2 | two
   3 | three
(3 rows)
Run Code Online (Sandbox Code Playgroud)

dbfiddle尝试,我无法让它在 Oracle 中工作。我不断得到

ORA-00903: 无效的表名

Oracle 是否支持VALUES ( expression [, ...] )? 如果不是,从查询中提供的行文字创建虚拟表的替代方法是什么?

oracle

3
推荐指数
2
解决办法
3153
查看次数

Postgres,如何将“0”值插入串行?

serial我的应用程序表中有一个ID。但是,我想插入一个0id 记录来表示全局。

有没有一种方法可以将它插入我的桌子而不影响计数器?

postgresql insert sequence

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

MariaDB 如何处理 FOREIGN KEY 约束中使用的 ENUM 类型?

紧接着这个问题,

如果引用表中的值ENUM比被引用表的值多或少,MySQL 如何工作?它是否仅基于全局ENUM文本密钥(符号)来验证完整性?还是底层的整数值?

mysql mariadb foreign-key enum

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

使用 PostgreSQL 函数而不是加入?

我对如何做某事没有疑问,但我是否应该这样做。抱歉,如果有更合适的论坛。

我有一个功能:

CREATE OR REPLACE FUNCTION get_name(user_id UUID) RETURNS TEXT AS $$
    SELECT username
    FROM   users
    WHERE  users.id=user_id
$$ LANGUAGE 'sql';
Run Code Online (Sandbox Code Playgroud)

我喜欢使用这个函数在其他查询中从 user_id 转换为用户名。这是一个常见的操作,我认为一个函数会加快开发时间,以查找一次性统计数据以进行数据分析。我不关心查询速度。这是使用函数来执行此操作的好习惯还是我应该只执行连接?

我对此很陌生,我的同事说将函数用于常规选择/连接可以执行的操作是不好的做法。他还提到,函数最好用于常规选择无法完成的事情。所以我想问其他人什么是好的做法?

编辑:如果这是一种不好的做法,那么对于函数执行稍微复杂一些的常见操作的情况是否更合理?

postgresql best-practices functions

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

如何确定是否可以内联 SQL 函数?

这个答案中, Erwin 将IMMUTABLE函数分解为可以内联的函数和不能内联的函数。他有一个例子to_char(),表明IMMUTABLE函数 overto_char()实际上会更慢

不过这很有趣,因为我什至不知道to_char()不是IMMUTABLE。此外,我不知道这IMMUTABLE会让任何事情变得更慢。我现在的问题是,如何确定标记为IMMUTABLE内联的函数是否被内联?

postgresql performance optimization execution-plan functions

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

如何在 ANSI SQL 89 语法中执行 JOIN?

在 Oracle 中,我使用

SELECT * FROM table1...JOIN...
Run Code Online (Sandbox Code Playgroud)

其中点表示连接类型或连接条件。

这是 ANSI 89 语法吗?如果没有,那么如果我使用 ANSI 89,我将如何执行连接?

join sql-standard

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

如何使用 MySQL 编写条件语句 (IF)?

下面的简单查询有什么问题?我试着用谷歌搜索但没有找到

IF 1 = 1 THEN
  SELECT 1;
ELSE
  SELECT 12;
END IF;
Run Code Online (Sandbox Code Playgroud)

mysql case

3
推荐指数
2
解决办法
6703
查看次数

如何在 SQL Server 中创建有界范围类型?

我想创建一个圣经经文表,其中有一个字段代表一系列圣经经文。目前我将此范围表示为一对值(VerseBegId 和 VerseEndId)。我想要类似 Sql Server 空间数据类型的东西

代替

CREATE TABLE BibleVerse AS TABLE
(
    VerseBegId int NOT NULL,
    VerseEndId int NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

我想要

CREATE TABLE BibleVerse AS TABLE
(
  VerseRange ??? NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

sql-server range-types user-defined-type

3
推荐指数
2
解决办法
616
查看次数

PostgreSQL 中注释的最大长度是多少?

PostgreSQL 有一个特殊的功能,称为COMMENT将元数据附加到标识符或任何类型(模式、表、列、函数、类型、域等)。看起来像这样,

COMMENT ON TABLE mytable IS 'This is my table.';
Run Code Online (Sandbox Code Playgroud)

评论有最大尺寸吗?

postgresql metadata comments

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

在 PostGIS“栅格”类型列上创建唯一约束

我正在使用以下命令向 PostGIS-2.1.3 (PostgreSQL-9.1.14) 中的光栅图像之一添加约束。

ALTER TABLE schema1.table1 ADD CONSTRAINT enforce_scalex_rast unique (rast);
Run Code Online (Sandbox Code Playgroud)

但得到以下错误:

ERROR:  data type raster has no default operator class for access method "btree"
HINT:  You must specify an operator class for the index or define a default operator class for the data type.
Run Code Online (Sandbox Code Playgroud)

请有人帮我解决这个错误。我对运算符类没有基本的了解。谢谢。

齐亚。

postgresql constraint postgis raster

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