此sql代码运行良好。
SELECT
primax-stdmax ,
stdmax-stdmaxapp
FROM
(SELECT MAX(sequence#) stdmax, thread#, resetlogs_change#
FROM v$archived_log
WHERE standby_dest='YES'
GROUP BY thread#, resetlogs_change#) a,
(SELECT MAX(sequence#) stdmaxapp, thread#, resetlogs_change#
FROM v$archived_log
在sql server 2012中执行以下查询时出错:
DECLARE @Id NVARCHAR(max) = 2147483648
DECLARE @Result BIGINT = 0
IF (
@Id = 0
OR @Id = ''
)
BEGIN
SET @Result = NULL
END
ELSE
BEGIN
SET @Result = convert(bigint,@id)
END
输出:
Msg 248,16级,状态1,第3行nvarchar值'2147483648‘的转换溢出了int列。
有人能告
我试图将两个不同宽度的选择合并到一个结果中。在Oracle标准SQL中,但由于缺乏权限,不允许使用PL/SQL。查询大致如下(带注释)。
1 SELECT * FROM [FOO] WHERE ROWNUM=1
2 UNION
3 SELECT COUNT(*), {n-1 null columns} FROM [FOO]
源表[FOO]在运行时被替换到查询中,它的列计数和列标签预先是任意的和未知的,但是查询的第1行只是抓取它们。
在查询的第3行中,我希望用[FOO]表的整数行计数填充第一列,然后根据需要填充尽可能多的Null列(表宽减去1),以填写第1行产生的正确列数。理想的结果如下。
我试图在MySQL中动态地将行转换为列,并在Java/Swing中显示结果。
用于将行转换为列的代码如下
SET @cols = NULL;
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(Name = ''',
Name, ''', Amount , NULL)) AS ', '''', Name , '''')
) INTO @cols
FROM table1;
S
我正在尝试注册DBMS更改通知,但是我在提到必须声明DBMS_CHANGE_NOTIFICATION时出错。
下面是我的SQL代码:
DECLARE
regid NUMBER;
BEGIN
--Deregister any existing change notification...
BEGIN
SELECT regid INTO regid FROM dba_change_notification_regs WHERE LOWER(table_name) LIKE '%aws_app_change_notif';
我试图从表列中获得最低日期和最高日期。正在使用下面的SQL查询。
select MIN(trunc(TO_DATE(MOD_BEGIN, 'YYYYMMDDHH24MISS'))) AS MIN_DATUM
, MAX(trunc(TO_DATE(MOD_END, 'YYYYMMDDHH24MISS'))) AS MAX_DATUM
from V_IPSL_PPE_MUC_AZEIT;
在PL/SQL中使用此查询。从上面的查询输出,我将生成日期范围。我们正在使用甲骨文19c。
但是问题是,这些列MOD_BEGIN,MOD_END只有很少的无效值(例
我想选择employee_id小于200的工资之和。这是我的密码。
declare
emp_id number;
x number;
function sum_max_salary (emp_id in number)
return number
is
v_result number;
begin
select sum(salary) into v_result from employees
where employee_id<200;
return v_result;
end;
begin
emp_
好的,我在做数据转换。在我的新数据库表中有大约12列,我只需要为旧数据库中的每个产品找到最近的事务。在我的查询中,有12次我需要从一个庞大的事务表中得到一个值。
为了获得最新的事务,我使用嵌套的内连接来查找'max‘。这些嵌套的查询降低了效率,子表也很大。当只抽取100个产品的样本时,我的查询大约需要20秒。我有一万英镑。有什么建议可以提高嵌套查询的效率吗?下面是这些嵌套的内连接之一的示例。
LEFT JOIN coverage_schedule CS_PL
ON R.risk_pk = CS_PL.risk_fk
AND CS_PL.coverage_
我正在尝试编写一个子查询,它将选择最高的价格以及与该最高价格相关联的商品名称。
例如:
ID | Price | Item Name
1 | 28.99 | Lamp
2 | 13.99 | USB Cable
我希望在我的子查询中得到"28.99“和”灯“。主查询如下所示:
SELECT
i.id
FROM
inventory i
我的主查询中的子查询如下所示:
SELECT
i.id,
(SELECT MAX(pl.price) FROM price_list pl WHERE pl.id = i.id) AS highest,
(SELEC
SELECT pl_from, NS, page_title, L_NS, L_titles, num_L, SB, IU, WP
FROM (
SELECT
pl_from,
-- pl_from_namespace does not appear to be consistently reliable;
-- it might be better to select from the page table and join the pagelinks table to it.
CASE
-- This fails on pages missing from the
我有一个SQL查询,它返回所需的确切行。
SELECT id_prod, item_type, id_item, max(date_time) maxdate
FROM items_pricing
WHERE id_prod IN (5,6) AND item_type IN (2,3)
GROUP BY id_prod, item_type, id_item
ORDER BY id_prod, item_type, id_item
但是,我还需要来自这些行的其他唯一列(例如id、list、cost),这些行不能在此查询中,因为它将影响由于GROUP子句而检索的行。如何修改查询以添加其他列?
我有以下SQL查询。
SELECT MIN(PLD.available_date) as 'FROM', MAX(PLD.available_date) as 'UNTIL', (
CASE
WHEN DATEDIFF('2012-04-01', '2012-04-10') = (COUNT(PLD.available_date) - 1)
THEN 'Yes'
ELSE 'No'
END) as isAvailable, PL.*
FROM `parking_lot_dat
我想编写一个sql查询,在其中我选择按id分组的所有行,其中列date是该id的最新日期,但仍然小于例如16-JL-2021。我想在不使用子查询(在oracle中)的情况下这样做,这可能吗?我试了下,但不起作用。
SELECT *, max(date)
WHERE date < '16-JUL-2021'
OVER(PARTITION BY id ORDER BY date DESC) as sth
FROM table
我想要创建一个PL/SQL函数,它将从给定的SQL查询返回格式化的HTML表内容。SQL输入查询可能有不同的列数。因此,如果我像SELECT x,y,z FROM mytable一样发送查询,我的函数应该返回一个三列(和许多行)的表。
为了构建格式化的表,我必须遍历不同数量的列,并用单元格(TD)填充HTML行(TR)。如何在给定的SQL查询中找到列的动态数!?
我需要在新插入的行中使用INSERT列的MAX值加上1来定位一条新记录。因此,如果位置值是14,那么下一个插入行的MAX列值应该是15。 这是我当前的代码,它正在工作,但它需要两个单独的查询: # get position order
$sql = 'SELECT MAX(position) FROM store_item_photo WHERE id_item = 3';
$stmt = cnn()->prepare($sql);
$stmt->execute();
$position = $stmt->fetchColumn();
$position++
我有一个PL/SQL查询:
SELECT customer_id, table_id, count(table_id) as reserved
FROM { derived table }
GROUP BY customer_id,table_id
ORDER BY reserved DESC
我的结果是:
因此,现在我想获得前2行(根据reserved列具有最大值),我尝试了以下查询:
SELECT customer_id,table_id,max(reserved) from
(
SELECT customer_id, table_id, count(table_id) as r
我使用oracle10gpl sql,我想将行转换成列,但是列应该是动态的,而不是硬编码的。
select *
from
"EnumerationValue"
pivot
(count("pkEnumerationValueId")
for "Text" in (select "Text" from "EnumerationValue" where "fkEnumerationId"=6));
我通过搜索找到了这个查询,但是它给了我错误。
ORA-00933: SQL c
我正在尝试创建一个基本的PL/SQL查询,在其中我使用某个SKU作为参数,这样我就可以引用它,而无需每次输入sku。
在编译我的代码时,我会得到以下错误:
错误报告: ORA-06550:第6行,第1列:请-00428: INTO子句在这个SELECT语句06550中被期望。00000 -“行%s,列%s:\n%s”*原因:通常是PL/SQL编译错误。*行动:
这是我的代码:
declare
myitem number (20);
begin
myitem := 1000956;
select f.order_no
from fdt_maptool f
where f.item =
我需要做这个功能,以加载团队从pl_raw到新的表名为游戏。在pl_raw中是所有的数据。现在.。这个函数是为了订购表格的数据..。
CREATE OR REPLACE FUNCTION loadGames() RETURNS void AS $$
BEGIN
IF (SELECT * from pldata.pl_raw where venue = 'Away') THEN
INSERT INTO definitiu.game (date_game, home_team, away_team)
SELECT game_date, opposition_id,team_id
我正在尝试将日期放在where子句中。我想要更新日期列在某个日期之前或之后的所有行。如何指定只更新这些列。以下是我到目前为止的代码(不包括特定的列名):
update table1
set column1 = value
where (select date from table2) < date;
我在正确的轨道上吗?
每当我在这个论坛上发布问题时,我说我有一个PL/SQL问题,但回答我问题的人说,某个函数- update/if/case/etc -是一个SQL语句,而不是PL/SQL语句。有什么关系?
-Neil
我被MySQL的嵌套select查询的Laravel Eloquent关系卡住了。我的查询是这样的。
SELECT
*,
GROUP_CONCAT(p.facility) AS facility
FROM
(SELECT
`proposals`.*,
`proposals`.`desc` AS `pending`,
`proposals`.`Date` AS `date`,
`pl`.`type` AS `facility`,
`ps`.`id` AS `proposalStatusId`,
`ps`.`status` AS `pro
我想改进我的SQL,为此我需要了解SQL中的控制流程。我理解基础知识,但这里有一个这样的例子,我无法理解一个表中的列如何在另一个表的where子句中用于不同的查询(子查询)?
是问题陈述。查询为:
SELECT
IF (Grade >= 8, Name, NULL),
Grade,
Marks
FROM
(SELECT
Name,
(SELECT Grade FROM Grades WHERE (Min_Mark <= Marks) AND (Marks <= Max_Mark)) AS Grade,
Marks
FROM Students) As MyStudents
OR
我正在使用PostGIS处理一些复杂的土地利用数据。我有几个例子是有完全重复的多边形创建的。我想要删除这些重复项,目前我正在使用以下自连接SQL来删除重复项:
delete from landusetable where objectid in
(select max(x.objectid) from landusetable x JOIN landusetable y ON
ST_Equals(x.shape, y.shape) WHERE x.objectid <> y.objectid group by x.shape);
这可以很好地删除具有较高objectid值的重复
是否可以在下面的SQL查询中添加WHERE条件?
目前,我正在从所有行中选择一个随机行到table中,我需要对它进行更改,以便只从table中的列:type="1"中的行中获得一个随机行。
这是SQL查询:
SELECT *
FROM table AS r1 JOIN
(SELECT (RAND() *
(SELECT MAX(id)
FROM table)) AS id)
AS r2
WHERE r1.id >= r2.id
ORDER BY
我想用这个查询中的值进行更新,但它的意思是它返回多个值。
UPDATE PO_HEADER
SET TOTAL = (SELECT SUM(LINE_TOTAL) AS "NEW_LINE_TOTAL"
FROM PO_LINE pl, PO_HEADER ph
where ph.IC_PO_HEADER = pl.IC_PO_HEADER
and ph.RELEASE_NUMBER = pl.RELEASE_NUMBER
group by pl.IC_PO_HEADER,pl.FOREIGN_KEY,ph.RELEASE_NUMBER,
ph.
我一直在犯这个错误,我搞不清是怎么回事。
这是我的代码:
DECLARE
fname doctor.dc_f_name%TYPE;
lname doctor.dc_l_name%TYPE;
BEGIN
FOR rec IN(
SELECT
dc_f_name, dc_l_name, dc_salary
FROM
Doctor
WHERE
dc_salary > 600)
LOOP
DBMS_OUTPUT.put_line(rec.fname || ' ' || re
我希望将一个查询的结果化名,并在另一个查询中使用said别名。作为一个简单的例子,如下所示:
(select a from foo) as fooResults;
select b from bar
where b in fooResults;
显然,这个语法不起作用。有什么方法可以用普通的Oracle SQL实现这一点吗?如果需要PL/SQL,语法是什么?搜索结果似乎都指向列或表别名。
编辑:一个驱动因素是,如果可能的话,我希望能够在以后的几个查询中使用fooResults。
我有以下CTE:
;WITH combo (id, [program_name]) AS
(
SELECT
1
, CAST('' AS VARCHAR(MAX))
UNION ALL
SELECT
cte.id + 1
,(cte.[program_name] + pl.[program_name] + '; ')
FROM (
SELECT
RowNum = ROW_NUMBER() OVER (ORDER BY people_id)