小编Glo*_*del的帖子

SELECT 有 INSERT 子句吗?

我知道表格

Select * into new_table from old_table
Run Code Online (Sandbox Code Playgroud)

陈述。Bur 最近我在这里这里找到了 2 个帖子,它们使用它

SELECT * FROM NhlPlayer
INSERT INTO PlayerBackups
Run Code Online (Sandbox Code Playgroud)

我在msdn 中什么也没找到,这是一些新语法还是只是一个错误?我猜后者是因为

INSERT INTO PlayerBackups
SELECT * FROM NhlPlayer
Run Code Online (Sandbox Code Playgroud)

会工作得很好。

sql-server select

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

单个 AND 运算符和多个 OR 运算符

我想选择一个 user_id 为 1 和 category_id 的 record_id 可以是 1、2 或 3。每个 SELECT语句都应该返回 1 条记录。

在此处查看我的示例表:

我如何在 SQL 中做到这一点?我试过这个 SQL 语句:

SELECT record_id
FROM tbl_people
WHERE category_id=1 OR category=id=2 OR category_id=3
OR category_id=4 OR category_id=5 OR category_id=6 
AND user_id = 1;
Run Code Online (Sandbox Code Playgroud)

......但它不起作用。

sqlite select

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

为什么 SQL 开发人员建议为一个有效的过程使用不同的格式?

这是我的原始程序,效果很好:

create or replace PROCEDURE EXTRACT_0_CPP AS
    CURSOR c_data IS
        SELECT cpp,
               rfu1,
               rfu2,
               mean_rfu,
               charge_ph7_4,
               hydropathy
        FROM   cpp
        ORDER BY LENGTH(cpp);
    F1 UTL_FILE.FILE_TYPE;

BEGIN 
    F1 := UTL_FILE.FOPEN( location => 'EXTRACT_DIR',
                          filename => '0_cpp.TXT',
                          open_mode => 'w',
                          max_linesize => 32767);
    FOR cur_rec IN c_data LOOP 
        UTL_FILE.PUT_LINE (F1, 
                            cur_rec.cpp || ':' ||
                            cur_rec.rfu1 || ':' ||
                            cur_rec.rfu2 || ':' ||
                            cur_rec.mean_rfu || ':' ||
                            cur_rec.charge_ph7_4 || ':' ||
                            cur_rec.hydropathy);                     
    END LOOP;
    UTL_FILE.FCLOSE(F1);
END;

Run Code Online (Sandbox Code Playgroud)

但是 SQL Developer 在下面给了我一条波浪状的红线,SELECT并建议我将其更改为:

create or …
Run Code Online (Sandbox Code Playgroud)

oracle

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

选择 Distinct 和 Inner Join 带来重复的值

我在使用内部联接从两个表中获取唯一值时遇到问题。

\n
SELECT distinct cast (opd.order_number as integer), p.payment_id ,\n    pt.transaction_status, \n    opd.installments_number, \n    pt.amount, \n    pt.origin_amount,\n    p.payment_capture_type,\n    opd.brand,\n    pt.created_date, \n    d."name" \nFROM payment p \nINNER JOIN payment_transaction pt ON pt.payment_id = p.payment_id\ninner join "domain" d on d.domain_id = p.domain_id \nINNER JOIN attempted_online_payment_data opd ON p.payment_id = CAST ( opd.order_number AS INTEGER )\nWHERE \np.created_date >= \'2021-11-01\' and status = 1\n
Run Code Online (Sandbox Code Playgroud)\n

这是我正在使用的查询,我想要一个 payment_id\xc2\xb4s 的唯一值列表,但是当我这样做时,由于某种原因它会带来两个相同的 payment_id。

\n

在此输入图像描述

\n

如何为每个 payment_id 获取唯一的行?

\n

postgresql join query distinct

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

远程连接 MS Sql 数据库的最低用户权限

我已按照本教程连接到 Microsoft SQL Server。我连接了 Glassfish Server 的 ping 功能,因此我必须授予一些用户权限才能 ping 数据库。

我的问题是我的用户可能无权将外部连接连接到数据库,或者更可悲的是,没有任何权限。在我可以使用我的用户连接到我的数据库之前,应该应用什么样的用户权限?

(我想在访问数据库之前需要一些 GRANTS,因为在 Mysql 上制作它需要很多。现在实际的问题是我无法在这里应用相同的查询,因为 SQL 脚本是不兼容的)

sql-server permissions

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

分区和索引,在这种情况下应该使用

我知道一些知识:

  • 分区用来实现更好的性能(如在描述文章)

  • 和索引用于提高选择操作的性能。

结果我的问题是:在哪些情况下我应该使用索引,在哪些情况下我应该使用分区表。

换句话说,在不同的操作(选择、删除、更新)索引或表分区中什么应该更好,以及为什么。

谢谢。

index sql-server partitioning

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

使用游标如果存在则更新,如果不存在则插入

我正在尝试写一个游标。我创建了一个表,用于从 sys.dm_exec_sessions 捕获登录名和时间。现在,我需要编写一个游标,以便在登录名已存在的情况下将登录时间更新为上次登录时间,并在表中不存在登录名的情况下插入一行。我想出了以下方法,但不幸的是,我收到一个错误,子查询返回多个值。有任何想法吗???

declare @log as varchar(200)
declare @log_time as datetime
declare LoginsSize cursor for
        SELECT  login_name, login_time
        FROM sys.dm_exec_sessions 
open LoginsSize
            fetch next from LoginsSize into @log, @log_time
            while( @@fetch_status = 0)
        begin                                                           
          If (Select Login from [dbo].[LoginsForDBUserList])  = @log 

             Begin
             UPDATE  [dbo].[LoginsForDBUserList]
             SET     LastLoginTime = @log_time
             WHERE   [login]= @log
             END

             Else 

             Begin
             Insert Into [dbo].[LoginsForDBUserList]
             SELECT  login_name, login_time
             FROM sys.dm_exec_sessions
             END

        fetch next from LoginsSize into @log, @log_time
        close LoginsSize
        deallocate LoginsSize

end
Run Code Online (Sandbox Code Playgroud)

sql-server cursors

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

为 ARRAY[] 列的默认值选择 NULL 与空数组 {} 时是否会影响磁盘空间?

我的直觉是NULL将比{}用作ARRAY[]PostgreSQL 中列的默认值时占用的空间更少。

我对么?

postgresql storage

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

如何在 SQL (Firebird) 中获取下周的日期?

我想使用 SQL 语句获取日期。例如,如果日期是“2018-08-07”输出,则应返回:“2018-08-14”(一周后)。然后我将获取这些日期之间的总行数。

SELECT count(*) FROM orders  WHERE dates BETWEEN '2018-08-07'  AND 
DATEADD(day,7,'2018-08-07');
Run Code Online (Sandbox Code Playgroud)

但是,由于 dateadd() 函数,我收到此错误:

SQL Error [335544634] [42000]: Dynamic SQL Error; SQL error code = -104; Token unknown - line 1, column 1; DATEADD [SQLState:42000, ISC error code:335544634]
Run Code Online (Sandbox Code Playgroud)

select firebird date

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

仅当存在端点时如何删除端点

我正在创建一个脚本来自动配置 2 个数据库进行镜像,使用这个方法,但我想确保没有已经创建的端点或主密钥,所以我想首先做一些清理:

DROP ENDPOINT End_Mirroring;
DROP CERTIFICATE PRIM_cert;
DROP MASTER KEY
Run Code Online (Sandbox Code Playgroud)

但是只有当它们已经存在时,我怎么才能做到这些?(我需要这个来避免我的脚本以错误退出)

sql-server-2008

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

SQL PRINT 与 SQL EXEC

执行下面的查询时,如果我使用PRINT它打印正确。我可以复制并粘贴打印的代码并执行它。但是,如果我使用 EXEC,则会出现以下错误:

执行时出错

有没有办法简化我正在做的事情?为什么 SQLPRINT和 SQL 会EXEC提供这两种截然不同的结果集?

DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

DECLARE @TableCursor as CURSOR;
SET @TableCursor = CURSOR FOR
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
AND name like 'HISTORY_MasterList_%'
ORDER BY sobjects.name

OPEN @TableCursor;
FETCH NEXT FROM @TableCursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL ='select '''+ @TableName +''', 0
 Union All
select All ''Server Count'',count(1) from ['+ @TableName +'] 
 Union All
select All ''Server Cores'',sum(convert(decimal(18,0),cores)) …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql sql-server-2008-r2 sql-server-2012

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