小编a_h*_*ame的帖子

关键字'if'SQL附近的语法不正确

如果运营现金流的平均值<= 0或前3运营现金流的平均值<= 0,我试图得到result5 = 1.错误消息显示关键字"if"附近的语法不正确.

begin
   declare @OperatingCashflow5 int
   declare @OperatingCashflow3 int
   declare @result5 int

   select @OperatingCashflow5 = AVG(hpd.TotalCashFromOperations)
   from HistoricalFinPerformanceDataStagingGlobal hpd
   where hpd.companyid = @companyid

   select @OperatingCashflow3 = AVG(hpd.TotalCashFromOperations)
   from (
     select top (3) hpd.TotalCashFromOperations 
     from   HistoricalFinPerformanceDataStagingGlobal hpd 
     where hpd.companyid = @companyid
   )

   if @OperatingCashflow5 <= 0 OR @OperatingCashflow3 <= 0 
   begin
      select @result5 = 1
   end
   else
   begin
      select @result5 = 0
   end 
end
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

0
推荐指数
1
解决办法
422
查看次数

如何在sql server中连接字符串

我试图连接字符串但它似乎不起作用.有人可以告诉我下面的代码有什么问题吗?

declare @x varchar = 'a';

SET @x += 's'

SET @x = @x + 'z'

SET @x = concat('x','y')

SELECT @x;
Run Code Online (Sandbox Code Playgroud)

上述方法均无效.我输出为'x'.

t-sql sql-server

0
推荐指数
1
解决办法
147
查看次数

其中column为null需要更长的时间来执行

我正在执行一个如下所示的select语句,执行时间超过6分钟.

select * from table where col1 is null;
Run Code Online (Sandbox Code Playgroud)

然而:

select * from table;
Run Code Online (Sandbox Code Playgroud)

几秒后返回结果.该表包含2500万条记录.没有使用索引.有一个复合PK,但没有使用col.在具有5000万条记录的不同表上执行时,查询相同,在几秒钟内返回结果.只有这张桌子有问题.

重建表格以检查是否有错过,但仍面临同样的问题.

有人可以帮我解释为什么需要时间吗?数据类型:VARCHAR2(40)PLAN:

Plan hash value: 2838772322

---------------------------------------------------------------------------------------------------
| Id  | Operation                 | Name                  | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT          |                       |     1 |   794 | 60973  (16)| 00:00:03 |
|*  1 |  TABLE ACCESS STORAGE FULL| table                 |     1 |   794 | 60973  (16)| 00:00:03 |
---------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - …
Run Code Online (Sandbox Code Playgroud)

sql oracle

0
推荐指数
1
解决办法
68
查看次数

SQL查询行中最常见的值

我的数据库看起来与下面的类似.

ID   A1   A2   A3    A4
7   2.31 2.31 2.31  2.32
8   2.32 2.32 2.32  2.32
9   2.31 2.3  2.31  2.31
10  2.32 2.3  2.32  2.31
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一个SQL查询,它给出如下输出(从ID中为每个值选择A1,A2,A3,A4中最常见的值,并将其显示在A列中)

ID  A
7   2.31
8   2.32
9   2.31
10  2.32
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个..

sql sql-server

0
推荐指数
1
解决办法
73
查看次数

获得唯一号码

如何忽略特殊字符并仅使用以下输入作为字符串获取数字.

输入:'33 -01-616-000'输出应为3301616000

regex sql oracle

0
推荐指数
1
解决办法
66
查看次数

用户 postgres 启动进程,该进程占用所有 CPU 100% 的使用率

用户 postgres 正在运行一个进程,该进程在 Centos 机器中以 100% 的使用率占用所有 CPU,但 postgresql 服务未运行,因此无法进行查询。

当我尝试停止该过程时,它会自行重新启动。那么进程的名字就有些奇怪了。

运行进程信息

postgresql postgresql-9.4

0
推荐指数
1
解决办法
1196
查看次数

选择上一行发生更改的记录

我有一个psql表调用test三个属性列.第一种类型是整数,第二种是字符,第三种是整数

我的目标是只选择其中的状态已经从记录ABC-换句话说,在当前状态C与以前的状态要么A或者B,通过有序id和记录编号.

如何在psql中编写这样的查询?

 id state record
  1     C      1
  1     A      2
  1     C      3
  1     A      4
  1     C      5
  1     A      6
  1     B      7
  2     C      8
  2     C      9
  2     C     10
  2     B     11
  2     C     12
  2     C     13
  2     C     14
  3     A     15
  3     C     16
  3     B     17
  3     A     18
  3     A     19
  3 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

0
推荐指数
1
解决办法
41
查看次数

Redshift 中的 COPY CSV 命令是否按照标题中定义的顺序加载?

我有一些代码可以将 CSV 从 S3 提取到 Redshift 表中。我遇到的问题是,如果 CSV 以特定的列顺序存储,则复制命令与 CSV 标题中的列顺序不匹配。

因此,如果我有一个包含列的 CSVid|age|name并且我有一个包含列的 Redshift 表id|name|age,它将尝试以 CSV 标题顺序拉入数据。所以在这种情况下,它会尝试将 name CSV 列拉入 Redshift 中的 age 列,这会导致类型错误。

我的查询是:

copy schema.#tmp from <s3file> 
iam_role <iamrole> 
acceptinvchars 
truncatecolumns
IGNOREBLANKLINES
ignoreheader 1
                  COMPUPDATE OFF
                  STATUPDATE OFF
                  delimiter ','
                  timeformat 'auto'
                  dateformat 'auto';
Run Code Online (Sandbox Code Playgroud)

我是否需要在复制命令中定义列顺序以匹配两者?

csv amazon-s3 amazon-redshift

0
推荐指数
1
解决办法
1261
查看次数

计算不使用循环的行程数

我目前正在研究postgres,下面是我的问题.

我们有一个客户ID以及该人访问房产的日期.基于此,我需要计算出行次数.连续日期被视为一次旅行.例如:如果一个人在第一次约会时访问该行程不是第一次,那么他会连续三天访问,这将被视为行程二.

以下是输入

ID  Date   
1   1-Jan  
1   2-Jan  
1   5-Jan  
1   1-Jul  
2   1-Jan  
2   2-Feb  
2   5-Feb  
2   6-Feb  
2   7-Feb  
2   12-Feb  
Run Code Online (Sandbox Code Playgroud)

预期产出

ID  Date    Trip no  
1   1-Jan   1  
1   2-Jan   1  
1   5-Jan   2  
1   1-Jul   3  
2   1-Jan   1  
2   2-Feb   2  
2   5-Feb   3  
2   6-Feb   3  
2   7-Feb   3  
2   12-Feb  4  
Run Code Online (Sandbox Code Playgroud)

我能够成功地使用循环实现,但考虑到数据量,它的运行速度非常慢.

你能否建议我们不能使用循环的解决方法.

sql postgresql gaps-and-islands

0
推荐指数
1
解决办法
74
查看次数

如何将多个表作为单个表读取

在将旧的VB程序转换为.NET程序时,项目经理已经决定我们需要为旧的(vb)数据和新的(.NET)数据提供单独的表.

这是有点令人困惑的地方.为了使.net版本向后兼容,我们需要.NET版本来读取.Net表和旧的VB表.

有没有办法从两个表中读取我的sql语句并将它们视为单个表?

例:

VB表:

约翰巴赫

路德维希贝多芬

.NET表:

沃尔夫冈莫扎特

约翰内斯勃拉姆斯

SQL会拉这个:

约翰巴赫

路德维希贝多芬

沃尔夫冈莫扎特

约翰内斯勃拉姆斯

sql sql-server

0
推荐指数
1
解决办法
67
查看次数