我有一个以不同方式保存日期的表格,三列,一列代表年,另一列代表月,另一列代表日。因为我想使用日期比较,所以我需要它们作为日期格式的标准单列。例子:
YEAR | MONTH | DAY
+-----+-------+-----+
2011 | 01 | 01
Run Code Online (Sandbox Code Playgroud)
想要的结果是日期yyyy-mm-dd格式。到目前为止,我已经搜索并找到了一些解决方案,但我无法使它们工作 -首先在 Oracle 中不起作用,其次是更数学的解决方案:
select (2011-1900)*10000 +1*100 +1 (date) from dual;
Run Code Online (Sandbox Code Playgroud)
给出错误: ORA-00936: missing expression
我该怎么做才能达到预期的结果?不使用数学可能有另一种解决方案吗?
给出一张桌子 id bigint default next_val('foo_sequence')
我可以假设id使用插入顺序组成的顺序吗?
我的意思是后面插入的id内容总是大于先前插入的ID.
我试图计算并保存一个增量连续的行数,
我就是这样做的
SELECT count(*) as seq_no from foo where id < some_id;
// get the seq no
UPDATE foo SET seq_no = seq_no_above + 1 WHERE id = some_id;
Run Code Online (Sandbox Code Playgroud)
但它有时会给出重复seq_no值,如果id包含insert命令,则它不应该有重复值.
TEXT_INT我的表中有列,我想使用TO_NUMBER函数转换为DECIMAL.不幸的是我得到了
INVALID NUMBER ORA-722错误.
我怀疑它可能有字符.所以发出以下查询,但没有字母表TEXT_INT.
SELECT *
FROM NANTHA_TABLE
WHERE UPPER(TEXT_INT) != LOWER(TEXT_INT);
Run Code Online (Sandbox Code Playgroud)
您能否提出解决此问题或查找错误数据的方法的想法?
我有一台可以访问带有包含存储过程的数据库的SQL Server的PC.我想复制程序来更新本地PC.
如何只在usb密钥上存储存储过程(不是所有数据库)来更新本地服务器?
也许这不是正确的方式,我是SQL的初学者.
编辑:我正在使用Microsoft SQL Management Studio 2014
我收到以下错误
消息102,级别15,状态1,行1"步骤9:_RMP分配当前月份"附近的语法不正确.
当我使用以下插入和where子句时:
INSERT INTO dbo.TrialRun [(Step 9: _RMP allocation current month)]
SELECT (RMP_prevMonth)
FROM dbo.TrialRun
WHERE Step7 > 200 and Step8>0
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Postgres 9.6在jbpm-installer-7.3.0.Final中设置持久性。
经过多次尝试后,我可以正常启动服务器和控制台,但是从工作台界面上,我无法使用“进程”或“任务”。
它显示一个弹出窗口:
无法加载流程定义。检查是否启用了jBPM功能,以及是否正确设置了远程服务器。
在Wildfly部署控制台中,我可以看到:
[org.jbpm.workbench.ks.integration.KieServerDataSetManager](kieserver)最有可能由于缺少BPM功能而无法在服务器default-kieserver @ localhost:8080上注册查询(详细信息此客户端连接到的服务器没有功能处理QueryServicesClient)
即使来自Kie服务器的响应似乎允许所有操作(与H2相同,也可以正常工作)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response type="SUCCESS" msg="Kie Server info">
<kie-server-info>
<capabilities>KieServer</capabilities>
<capabilities>BRM</capabilities>
<capabilities>BPM</capabilities>
<capabilities>CaseMgmt</capabilities>
<capabilities>BPM-UI</capabilities>
<capabilities>BRP</capabilities>
<capabilities>DMN</capabilities>
<capabilities>BPMQueries</capabilities>
<location>http://localhost:8080/kie-server/services/rest/server</location>
<messages>
<content>Server KieServerInfo{serverId='default-kieserver', version='7.3.0.Final', location='http://localhost:8080/kie-server/services/rest/server', capabilities=[KieServer, BRM, BPM, CaseMgmt, BPM-UI, BRP, DMN, BPMQueries]}started successfully at Mon Oct 02 17:45:00 CEST 2017</content>
<severity>INFO</severity>
<timestamp>2017-10-02T17:45:00.138+02:00</timestamp>
</messages>
<name>default-kieserver</name>
<id>default-kieserver</id>
<version>7.3.0.Final</version>
</kie-server-info>
</response>
Run Code Online (Sandbox Code Playgroud)
这是我设置Postgres的步骤
我假设之前的所有步骤都已完成,而您为H2 Demo设置所做的步骤
设置wildfly-10.1.0.Final \ modules \ org \ postgresql \ main \ module.xml
<resource-root path="postgresql-42.1.4.jar"/> …
我们如何生成以 1001 开头的序列号并在 select 语句中使用,并用 '0's 将序列值 lpad 。这用于将记录从 Db 表插入到 CSV 文件中,此代码写在 cursor 中。任何人都可以建议最好的方法来做到这一点。我有一个示例查询,查询是否有效?
select lpad((create sequence customer.seq as int start with 1001 increment by 1),11,0);
Run Code Online (Sandbox Code Playgroud) 有一个账单清单,我想知道按 ID 分组的每个客户的销售量。每张账单都有一个负责人(一个店员,要么是餐桌上的顾客),所以我想把最后一张账单的人接起来,放在结果中。
结果应该是这样的:客户 - 账单总和 - 最后一张账单的负责人。
由于 Oracle 没有“限制”选项(我们还没有 12c),我必须使用 Subselect 来完成。这意味着我无法比较客户的 ID,因为它超出了范围(请参阅下面的代码)。欢迎任何建议。
SELECT customer.NAME, SUM(bills.SUME),
(SELECT responsibleP FROM
(SELECT responsibleP FROM bills b WHERE b.responsibleP = customer.id
order by asc billDate)
WHERE ROWNUM = 1)
FROM customer, bills
WHERE customer.id = bills.customerid
GROUP BY customer.id;
Run Code Online (Sandbox Code Playgroud)
在这种情况下b.responsible是不是能够得到customer.id从客户表。
请随意更改标题,我不是很擅长那个,对不起!
我需要从表中的字符串字段获取视图中的布尔字段.True如果字符串已填充,则应为boolean字段:
SELECT (MasterId IS NOT NULL) AS HasMaster FROM entries
Run Code Online (Sandbox Code Playgroud)
但是,这会导致错误:
关键字"IS"附近的语法不正确
为什么这样以及如何解决?