小编MAK*_*MAK的帖子

PostgreSQL中的集群和非集群索引

我正在使用PostgreSQL 9.3版本来创建数据库.

我有一些列列表的下表测试.

create table test
(
  cola varchar(10),
  colb varchar(10),
  colc varchar(10),
  cold varchar(10)
);
Run Code Online (Sandbox Code Playgroud)

现在我想在一些列上创建索引.

例如:

我想创建一个列聚集索引colacolb.

我想创建一个列非聚集索引colccold.

正如我提到这个这个,我才知道,有在PostgreSQL里没有聚集和非聚集索引.

我的问题:我可以使用什么类型的索引而不是PostgreSQL中的聚簇索引和非聚簇索引,它与集群索引和非聚簇索引的作用相同?

postgresql indexing postgresql-9.3

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

错误:使用PostgreSQL 9.3在dblink中的函数需要列定义列表

我有以下功能:

我通过使用加入其他数据库表来更新一个数据库表dblink().

我安装了:

create extension dblink;
Run Code Online (Sandbox Code Playgroud)

更多细节如下图所示:

CREATE OR REPLACE FUNCTION Fun_test
(
    Table_Name varchar
) 
RETURNS void AS

$BODY$

DECLARE
    dynamic_statement varchar;

BEGIN
    perform dblink_connect('port=5234 dbname=testdb user=postgres password=****');


    dynamic_statement := 'With CTE AS 
    ( 
        Select HNumber,JoiningDate,Name,Address
        From '|| Table_Name ||'c 
    )
    , Test_A 
    AS 
    ( 
    Select Row_Number() over ( Partition by PNumber order by Date1 Desc,Date2 Desc) AS roNum,
    Name,PNumber,Date1,Address
    From dblink(
            ''Select distinct PNumber,
            (
                case when fname is null then '' else fname end || …
Run Code Online (Sandbox Code Playgroud)

postgresql dblink postgresql-9.3

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

SQL Server 2008 R2:'CREATE/ALTER VIEW'不允许将数据库名称指定为对象名称的前缀

我有2个数据库DB1DB2.

我有一个被称为View1存储在数据库中的视图DB2.现在我想ALTER VIEWDB1数据库.

我的尝试:

ALTER VIEW DB2..View1 
AS 
   SELECT * FROM DB2..Test;
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

'CREATE/ALTER VIEW'不允许将数据库名称指定为对象名称的前缀

sql-server sql-server-2008-r2

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

将逗号分隔的字符串拆分为临时表

我将以下字符串变量拆分为临时表.

示例:

DECLARE @Str VARCHAR(MAX) = '10000,200000'
Run Code Online (Sandbox Code Playgroud)

现在我希望它存储在#Temp表中.

像这样:

表: #Temp

Cola     Colb
--------------
10000   200000
Run Code Online (Sandbox Code Playgroud)

sql-server

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

PostgreSQL 9.3: ALTER VIEW AS

我正在使用 PostgreSQL 9.3 版本。

由于表已更改(添加了更多列),我需要更改视图。

好!我尝试了以下对我不起作用的脚本:

ALTER VIEW View1 AS SELECT * FROM Table1;
Run Code Online (Sandbox Code Playgroud)

出现错误:

Syntax error near 'AS'
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.3

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

pgAdmin:如何查看输出单元格中的完整值

我有一个查询,该查询使我在输出单元格中具有较大的输出值。但是问题是,对于阅读,我需要拖动列并查看值,并且在某个范围后,值不会显示,而是显示给我(...)。复制值后,我也无法获取整个值集。

在此处输入图片说明

在此处输入图片说明

问题:如何从输出中看到整个价值集?

postgresql pgadmin

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

Power BI:单个 if 条件中的多个条件

我有带有字段的表Amount, Condition1, Condition2

例子:

Amount  Condition1   Condition2
----------------------------------
123     Yes          Yes
234     No           Yes
900     Yes          No
Run Code Online (Sandbox Code Playgroud)

我想根据条件计算20%的金额:

如果 和Condition1都是Condition2Yes 则计算20%else 0

我的尝试:我尝试使用条件自定义列,但无法在查询编辑器中AND添加。IF

powerbi

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

将秒添加到时间戳中

我想在给定的时间戳中添加秒数。

例子

给定时间:

Declare
       t1 timestamp = '1900-01-01 02:00:00';
Run Code Online (Sandbox Code Playgroud)

现在我想20 seconds在给定的时间内添加一些内容。

在 SQL Server 中我使用过DATEADD. 但我搜索了一下,发现PostgreSQL没有提供这样的功能。

解决方案是什么?

postgresql postgresql-9.3

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

PostgreSQL 9.5:跳过文本文件中的前两行

我有要导入的文本文件,格式如下:

columA    | columnB    |    columnC
-----------------------------------------
1     |     A          |    XYZ
2     |     B          |    XZ
3     |     C          |    YZ
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法跳过第一行:

WITH CSV HEADER; 
Run Code Online (Sandbox Code Playgroud)

在复制命令中,但在跳过第二行时卡住了。

postgresql

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

查找以 GUID 作为名称的表

我有一些表,GUID其名称是生成的。

例如:

我的表名称为:

FD962987-AA3E-441C-B608-2392B68A5287

508482AF-EFCF-41C1-B083-D51BF37C3590
Run Code Online (Sandbox Code Playgroud)

数据库中还有一些其他表。

我只想找到名称为 的表GUID

我的尝试:

SELECT name 
FROM sys.tables 
WHERE LEN(tables.name) = 36 
Run Code Online (Sandbox Code Playgroud)

上面的查询工作正常,但是当我有其他表(不是 GUID 名称)时,会显示具有相同长度的表名。

sql-server sql-server-2008-r2

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