有人可以向我解释当查询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) 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)
我收到这个错误:
表级触发器中不允许使用新引用或旧引用
我正在尝试在服务器上的表中实现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
我有一个带有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)
我需要此查询来匹配至少一个字符串,而不是所有字符串.
[接收整数作为输入的简单程序,如果该数字是微不足道则打印]
当我运行这个我得到一个错误"(此时出乎意料)
@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) 我是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秒"
我想知道是否可以像在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) 你好堆栈溢出成员,我有一个我正在处理的问题,我不知道如何解决它.所以我有这个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?任何帮助将不胜感激!
select *
from sometable
where column1='somevalue' and column2='someothervalue'
Run Code Online (Sandbox Code Playgroud)
对于上面的查询,如果column1和column2都有索引表ix1和ix2,那么上面的例子使用哪个索引?假设'somevalue'和'someothervalue'是表中的现有值,column1和column2具有非唯一值.
如果和被替换为或者,它会有什么不同?
sql ×6
oracle ×4
postgresql ×3
date ×2
sql-server ×2
batch-file ×1
cmd ×1
counter ×1
datetime ×1
if-statement ×1
json ×1
plsql ×1
psql ×1
t-sql ×1
triggers ×1
windows ×1