小编a_h*_*ame的帖子

sql oracle todate差异

有人可以向我解释当查询1返回查询2中使用的替换值时,为什么查询4的输出与其他输出不同,这应该等同于运行与查询4相同的操作?

我怀疑它与nls_date_format有关,但我不确定.

查询1

SELECT TO_DATE(SYSDATE, 'DD/MON/YYYY')FROM DUAL;
TO_DATE(SYSDATE,'DD/MON/YYYY')
------------------------------
02-SEP-15 
Run Code Online (Sandbox Code Playgroud)

查询2

SELECT TO_DATE('02-SEP-15') - TO_DATE('01/JAN/07') FROM DUAL;
TO_DATE('02-SEP-15')-TO_DATE('01/JAN/07')
-----------------------------------------
                                     3166

SELECT TO_DATE(SYSDATE, 'DD/MON/YY') - TO_DATE('01/JAN/2007') FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

查询3

TO_DATE(SYSDATE,'DD/MON/YY')-TO_DATE('01/JAN/2007')
---------------------------------------------------
                                               3166
Run Code Online (Sandbox Code Playgroud)

查询4

SELECT TO_DATE(SYSDATE, 'DD/MON/YYYY') - TO_DATE('01/JAN/2007') FROM DUAL;

TO_DATE(SYSDATE,'DD/MON/YYYY')-TO_DATE('01/JAN/2007')
-----------------------------------------------------
                                              -72732
Run Code Online (Sandbox Code Playgroud)

sql oracle date

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

触发Sql Oracle

create or replace trigger t1 
  before update of price on book 
declare 
  vdif number; 
begin 
  vdif:=:new.price-:old.price; 
  dbms_output.put_line('Price Diff is '||vdif); 
end;
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

表级触发器中不允许使用新引用或旧引用

sql oracle triggers plsql

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

SQL中的sumProduct

我正在尝试在服务器上的表中实现sumproduct(来自excel)。

select * 
into #myTable2
from #myTable1

select
a, 
b,
c,
d,
e,
(
select (c * e)/100*3423) from #myTable1 t1
inner join #myTable t2
on t1.b = t2.b
where b like 'axr%'
) as sumProduct
from #myTable1
Run Code Online (Sandbox Code Playgroud)

但这并不完全有效。无法发现错误,也许我只是累了或想念它。

编辑: 样本数据和所需结果

只提及重要的专栏

c     e    b        a                             sumProduct      
2     4   axr1     2012.03.01                     2*4 + 3*8 
3     8   axr3     2012.03.01                     2*4 + 3*8 
7     5   axr23    2011.01.01                     7*5 + 3*2
3     2   axr34    2011.01.01                     7*5 + 3*2
Run Code Online (Sandbox Code Playgroud)

EDIT2:我需要一些语法帮助。我正在尝试重写这一部分:

select (c * …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 window-functions sql-server-2012

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

PostgreSQL json数组交集查询

我有一个带有jsonb 数据列的表,如下所示:

data: {
    "categories": [
        "Category A",
        "Category D"
    ],
    "something": "dsa",
}
Run Code Online (Sandbox Code Playgroud)

我想查询在类别数组(非空交集)中存在一个或多个字符串的行.

让我们假设要检查的这些字符串是"A类"和"B类".

这样的查询怎么样?

这是一个类似的查询,除了它检查所有提供的字符串是否存在于categories数组中:

SELECT *
FROM table
WHERE data->'categories' @> '["Category A", "Category B"]'
Run Code Online (Sandbox Code Playgroud)

我需要此查询来匹配至少一个字符串,而不是所有字符串.

sql postgresql json

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

Windows批处理如果 - 否则无效

[接收整数作为输入的简单程序,如果该数字是微不足道则打印]

当我运行这个我得到一个错误"(此时出乎意料)

@echo off
set /a i=2
set /p input="enter an integer: "
set /a n=input
set /a t=n/2

:loop1      
    if %t% LSS %i% (
        goto trivial
    ) else (
        set /a t0=n%i
        if %t0%==0 (
            goto notTrivial
        ) else (
            set /a i=i+1
            goto loop1
        )
    )
:trivial
    echo %n% is trivial
    goto endd
:notTrivial
    echo %n% is not trivial
:endd
pause > nul
Run Code Online (Sandbox Code Playgroud)

但是当我在loop1中删除else语句时(这是不必要的(因为if if中的goto命令))它可以工作

:loop1      
    if %t% LSS %i% (
        goto trivial
    ) 
        set /a t0=n%i
        if …
Run Code Online (Sandbox Code Playgroud)

windows cmd if-statement batch-file

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

将秒转换为yyyy-mm-dd hh:mm:ss PostgreSQL

我是PostgreSQL sql的新手,现在正在处理现有的数据库.我在表中有一个名为value的列,它包含以秒为单位的日期时间戳.所以我正在寻找可以将这些秒转换为Postgres数据库中的yyyy-mm-dd hh:mm:ss的方法.我尝试了以下方法:

SELECT  TO_CHAR('1444646136079 second'::interval, 'yyyy-mm-dd HH24:MI:SS')
Run Code Online (Sandbox Code Playgroud)

1444646136079是我想要转换的值但是我收到以下错误:

错误:区间字段值超出范围:"1444646136079秒"

postgresql datetime date

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

SQL计数器变量@Count + = 1

我想知道是否可以像在C#中那样创建一个Count变量.

DECLARE @Count Int
SET @Count = 0

--something happens
SET @Count += 1

--something happens
SET @Count += 1

IF @Count < 3
BEGIN
--Do something
END
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server counter

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

无法创建新的 Postgres 数据库

在我的 macbook pro 上安装 postgres.app 后,我第一次无法创建新数据库
在此处输入图片说明

这里的任何人都可以指出问题的根源吗?

postgresql psql

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

十进制格式

你好堆栈溢出成员,我有一个我正在处理的问题,我不知道如何解决它.所以我有这个SQL代码:

SELECT ABS(SUM(TO_CHAR(a1.test_amount, '99999.00'))) AS "Test Amt"
FROM test a1
WHERE a1.test_id = '102434'
AND a1.test_detail_code IN ('2334','2335','2336')
AND a1.test_period = '201501'
Run Code Online (Sandbox Code Playgroud)

我所要做的就是将其a1.test_amount转换为两位小数的格式.当我TO_CHAR使用以下内容时,它可以正常工作.

SELECT TO_CHAR(1450, '99999.00')
FROM dual
----------
1450.00
Run Code Online (Sandbox Code Playgroud)

这让我相信它与它有关SUM?任何帮助将不胜感激!

sql oracle

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

使用哪个索引?ORACLE DB SQL

select *
from sometable 
where column1='somevalue' and column2='someothervalue'
Run Code Online (Sandbox Code Playgroud)

对于上面的查询,如果column1和column2都有索引表ix1和ix2,那么上面的例子使用哪个索引?假设'somevalue'和'someothervalue'是表中的现有值,column1和column2具有非唯一值.

如果和被替换为或者,它会有什么不同?

sql oracle

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