小编Tar*_*ryn的帖子

将多行数据从 A 列更新到 B 列?

我有大约 60,000 行需要将信息从 column_a 更新到 column_b。例如,60,000 名客户需要他们的到达时间来匹配他们的离开时间。我知道我可以用一行来做到这一点,它可以在更新语句中使用嵌套的 select 语句。当我尝试更新多行时,我相信我必须拥有 60,000 个唯一的密钥标识符。

这是我用来更新 1 条记录的方法,我使用的是 Oracle SQL:

UPDATE patient 
SET discharge_dt = (SELECT admit_dt 
                    FROM patient 
                    WHERE pat_seq = 'XXXXXX') 
WHERE facility_id = 'X' 
    AND pat_seq = 'XXXXXX'
Run Code Online (Sandbox Code Playgroud)

为令人困惑的描述道歉,我本人并不是真正的数据库管理员。

对此的任何帮助将不胜感激。

oracle update

5
推荐指数
1
解决办法
3万
查看次数

如何获得唯一记录

表结构

CREATE TABLE [dbo].[Order Details2](
    [OrderID] [int] NOT NULL,
    [ProductID] [int] NOT NULL,
    [UnitPrice] [money] NOT NULL   DEFAULT (0),
    [Quantity] [smallint] NOT NULL   DEFAULT (1),
    [Discount] [real] NOT NULL   DEFAULT (0),
 CONSTRAINT [PK_Order_Details2] PRIMARY KEY CLUSTERED 
(
    [OrderID] ASC,
    [ProductID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

表值

+-------------+-----------+------------+----------+----------+
|     OrderID | ProductID | UnitePrice | Quantity | Discount |
+-------------+-----------+------------+----------+----------+
|       10248 |        11 | 14         |       12 | 0        |
|       10248 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

4
推荐指数
2
解决办法
1579
查看次数

使用 SQL 查询连接 3 个表?

我在加入三个表时遇到问题。当我使用相同的查询连接两个表(删除后LEFT OUTER JOIN C ON B.No = C.No)时,它运行良好。但是,当我使用三个表时它不起作用。

这是我的查询

SELECT A.Name, B.Quantity, C.Quantity 
FROM A 
LEFT OUTER JOIN B 
    ON A.ID = B.ID 
LEFT OUTER JOIN C 
    ON B.No = C.No; 
Run Code Online (Sandbox Code Playgroud)

ms-access

4
推荐指数
1
解决办法
3万
查看次数

如何让 row_number 具有dense_rank 的行为

我有一个存储过程将用于分页数据。该过程的要求之一是有一个参数将用于对两列数据进行排序,在应用row_number().

一些示例数据:

CREATE TABLE grp 
(
  [grp_id] uniqueidentifier primary key, 
  [grp_nm] varchar(5) not null, 
  [grp_owner] varchar(200) not null
);

INSERT INTO grp ([grp_id], [grp_nm], [grp_owner])
VALUES
    ('7F5F0F16-4EBE-E211-9C26-78E7D18E1E84', 'test1', 'me'),
    ('1F52A713-EFAC-E211-9C26-78E7D18E1E84', 'test2', 'me'),
    ('D123B48A-63AB-E211-9C26-78E7D18E1E84', 'test3', 'me'),
    ('48361F86-2BC2-E211-9C26-78E7D18E1E84', 'test4', 'me'),
    ('27429A57-93C1-E211-9C26-78E7D18E1E84', 'test5', 'me'),
    ('D5DF9F8E-EDC2-E211-9C26-78E7D18E1E84', 'test6', 'me'),
    ('9A07EA21-1AAD-E211-9C26-78E7D18E1E84', 'test7', 'me');


CREATE TABLE mbr
(
  [grp_id] uniqueidentifier, 
  [mbr_id] int not null primary key, 
  [acct_id] varchar(7) not null, 
  [cst] varchar(4) null
);

INSERT INTO mbr ([grp_id], [mbr_id], [acct_id], [cst])
VALUES
    ('7F5F0F16-4EBE-E211-9C26-78E7D18E1E84', 10, '1', …
Run Code Online (Sandbox Code Playgroud)

sql-server window-functions

4
推荐指数
1
解决办法
582
查看次数

在oracle中检查当前密码时如何更改用户密码?

在我的应用程序中,我有一个更改密码表单,用户可以在其中输入当前密码和新密码。然后我使用以下命令更改他们的密码:

alter user user_name identified by new_password;
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何检查用户在表单中输入的当前密码是否正确(因为密码是在oracle中加密的)

我该怎么做?

oracle plsql

4
推荐指数
1
解决办法
4669
查看次数

如何在 Oracle 11g 中连接多个用户/模式?

我几乎是数据库的新用户,所以我认为我做错了什么。

  • 我已经创建了数据库。
  • 我创建了 3 个用户,1 个是管理员,2 个只是用户。
  • 我创建了 2 个角色,1 个用于管理员,2 个用于其他用户。

我正在学习中的模式OracleSQL Server. 例如,在 SQL Server 中,我创建了分配给架构的表:CREATE TABLE schema1.table1然后我能够看到所有这些表,以及分配给该数据库的用户;对于 Oracle,我认为模式是用户拥有的序列、同义词等的总和。(如果不是,请纠正我)

我想在 Oracle 中实现这一点,所以我创建了用户/模式;之后,我user1与该用户建立了联系并创建了表;后来,我连接user2并创建了与用户相关的表。

现在,当我尝试使用管理员创建更改相关user1表和user2表时,它说我没有足够的权限。

改变我正在尝试做的事情:

ALTER TABLE user1.PhoneTable
    ADD (CONSTRAINT C_001 FOREIGN KEY (Status) 
            REFERENCES user2.ClientTable (Status) ON DELETE SET NULL);
Run Code Online (Sandbox Code Playgroud)

我创建了这些用户,因为如果我想查看与电话(user1)相关的所有表,我已连接到该用户,这应该是全部,我只想让数据库有一些订单。

管理员权限:

GRANT 
    CREATE SESSION,
    UNLIMITED TABLESPACE,
    CREATE TABLE,
    DROP ANY TABLE,
    CREATE CLUSTER,
    CREATE SYNONYM,
    CREATE PUBLIC SYNONYM,
    CREATE VIEW,
    CREATE SEQUENCE,
    CREATE …
Run Code Online (Sandbox Code Playgroud)

oracle sql-server oracle-11g-r2 permissions

3
推荐指数
1
解决办法
1万
查看次数

带有动态列的 Select 语句,其中这些列是另一个表中的行

我想写一个带有一些固定列和动态列的选择语句。这里的动态列名称是另一个表中的行。

我试过这个,但得到错误。请告诉我我的错误在哪里

set @sql=(Select subject from tbl_subjects where C_Id=22);
SELECT 
    ta.rollno,
    ta.StdNm,
    tc.C_Name,
    @sql
FROM
    tbl_cmarks tm,
    tbl_admission ta,
    tbl_classes tc
WHERE
    tm.Cid = tc.C_Id
        AND ta.rollno = tm.rollno
        AND tm.Cid = 22 and tm.Examid=9 
Run Code Online (Sandbox Code Playgroud)

Mysql 显示:

错误代码:1242。子查询返回多于 1 行

谁能告诉我如何在mysql中做到这一点?

mysql

3
推荐指数
1
解决办法
5万
查看次数

SQL来自/哪里或加入?

我想知道在性能方面什么会更快加入或来自和哪里查询。我正在尝试合并和更新查询,但性能很差?

performance oracle

2
推荐指数
1
解决办法
217
查看次数

如何更改从 mysql 生成的报告的特定日期的值

我正在 mysql 中生成出勤报告,通过从 3 个表中提取数据,例如从招生表中提取学生姓名和卷号,缺席表中的缺席详细信息,并且我创建了一个日历表来生成所需的输出我可以在这里生成输出我的数据库和我生成的结果。SQL小提琴

现在我想将表中出现“SUN”的任何位置显示为“S”,并且如果报告中有任何假期日期,则应将它们显示为“H”。

谁能告诉我在查询中我应该怎么做才能产生预期的结果?

我的数据:

CREATE TABLE tbl_admission
    (`StudentName` varchar(5), `RollNo` int, `Class` int)
;

INSERT INTO tbl_admission
    (`StudentName`, `RollNo`, `Class`)
VALUES
    ('Naren', 1, 22),
    ('Srinu', 2, 22),
    ('Blah', 3, 22)
;

CREATE TABLE tbl_absentees
    (`Date` datetime, `Status` varchar(1), `RollNo` int, `Class` int)
;

INSERT INTO tbl_absentees
    (`Date`, `Status`, `RollNo`, `Class`)
VALUES
    ('2013-06-01 00:00:00', 'A', 1, 22),
    ('2013-06-02 00:00:00', 'A', 1, 22),
    ('2013-06-03 00:00:00', 'A', 1, 22),
    ('2013-06-04 00:00:00', 'A', 1, 22),
    ('2013-06-05 00:00:00', 'A', 1, …
Run Code Online (Sandbox Code Playgroud)

mysql

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

如何在 GROUP_CONCAT 中做聚合函数

我正在生成一份报告以显示未结费用,例如哪种费用类型,该费用类型的固定金额,该费用类型支付的金额以及最终该费用类型支付的余额金额。

在这里,我从 5 个表中提取数据,例如来自 Classes 表的 Class Names、来自招生表的 Roll no & Student Name、来自 Feevars 表的 Fee Types、来自 studentfees 表的费用类型固定金额,以及最后从费用收集表中为费用类型支付的金额.

我可以通过加减运算在 select 语句中提及费用类型名称来生成部分结果。

这是完整的数据库和我的查询产生的结果。请在此演示中查看 **@我的查询,在选择语句中我手动提到了费用类型。但是我想生成结果而不将费用类型作为列名。

为此,我做了一件事,我将所有费用类型都放入了这样的 sql 变量中

set @sqlList = null;SELECT GROUP_CONCAT(concat('tsf.', Replace(FeeName,' ',''))) INTO @sqlList FROM tbl_feevars;
Run Code Online (Sandbox Code Playgroud)

这将导致所有费用类型成为单行作为列名。最后,我编写了代码来生成我所期望的输出,但是我收到了类似错误代码 1064:您的 sql 语法错误。

这是我的最终代码

预期输出代码

请任何人告诉我,我的 sql 查询有什么错误。并建议我,如果有的话??其他方式来做这个报告。

我的表:

CREATE TABLE `tbl_admission` (
  `AdmNo` varchar(50) NOT NULL,
  `Grp` varchar(45) NOT NULL,
  `Cls` varchar(45) NOT NULL,
  `rollno` int(11) NOT NULL,  
  `StdNm` varchar(50)
);

CREATE TABLE `tbl_classes` ( …
Run Code Online (Sandbox Code Playgroud)

mysql

0
推荐指数
2
解决办法
5808
查看次数