我有以下 SQL Server 2008 表和数据:
CREATE TABLE dbo.MyTable (Sno int, refid int);
INSERT INTO dbo.MyTable VALUES
(17, 8),
(16, 8),
(15, 7),
(14, 7),
(13, 6),
(12, 6),
(11, 5),
(10, 5),
(9, 4),
(8, 4),
(7, 3),
(6, 3),
(5, 2),
(4, 2),
(3, 1),
(2, 1),
(1, 0);
Run Code Online (Sandbox Code Playgroud)
请注意,Sno2 和 3 引用Sno同一个表中的 1(自引用)。所以 2 和 3 是 1 的孩子,1 是 2 和 3 的父母。
我将传入一个Sno值(例如 4),我需要:
Sno结果集中的所有父项。Sno另一个结果集中的所有子项。我需要显示每个结果集的前 …
我需要弄清楚这里的订单是什么意思。我只是询问获取数据的顺序。
如果我只是SELECT * FROM table;在没有ORDER BY子句的SQL Server 中,我发现结果总是以相同的顺序出现。对于其他一些数据库服务器,例如 PostgreSQL,情况肯定不是这样。
观察到的行为真的发生了吗?我认为结果将按照添加行的顺序返回。
我还没有尝试过使用非常大的表格,但我使用过的表格似乎确实如此。
笔记:
此问题仅与 SQL Server 相关。我非常理解 SQL 本身没有首选顺序,这是我使用其他数据库的经验。
关键是 SQL Server 似乎更喜欢分配顺序,我想知道这是否属实。
笔记2:
至于这个问题可能是重复的,我对为什么特别在任何地方添加行不感兴趣。我只是想知道它们是否按分配顺序正常返回......
我有一个名为列createdate的datetime数据类型。我想提取今天和昨天之间的数据。
select * from table1(nolock) where createdate ='2018-06-01' --not getting any output
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
select * from table1(nolock) where createdate between '2018-06-01' and '2018-06-02'
Run Code Online (Sandbox Code Playgroud)
而不是硬编码日期,我需要之间dateadd(d,-1,getdate()) and getdate(),但getdate()提供当前时间戳。我怎样才能搜索一整天 like2018-06-02而不是2018-06-02 02:12:13.423?
似乎是一个简单的问题,但想知道如果您“点缀您的 i 并穿过您的 t”,那么执行此操作的“最佳”方法是什么。
我有一个包含大约 200 列的 MySQL 表。
每列的名称是col_i(i=1 ,2,..200)。
假设我只需要选择前 50 列,我应该如何进行?
我找到了有关该concat()功能的信息,但我无法使用它。
我知道这可以手动完成,例如通过编写:
SELECT col_1, col_2, ..., col_50 FROM table_1 ;
Run Code Online (Sandbox Code Playgroud)
...但是写每个列名是很累人的。如果可能的话,我正在寻找一种循环方法。
我想知道像下面这样的简单查询在一个只有 300 000 行的表上花费 6-7 秒是否正常。我正在研究 SQL Server 2014,而 RDBMS 需要花费大量时间来返回“没有那么多”数据,这让我感到非常惊讶。
SELECT [Id]
,[b]
,[c]
,[d]
,[e]
,[f]
,[g]
,[h]
,[i]
,[j]
,[k]
,[l]
,[m]
,[n]
,[o]
,[p]
,[q]
,[r]
,[s]
,[t]
,[u]
,[v]
,[w]
,[x]
,[y]
,[z]
,[aa]
,[ab]
,[ac] FROM .[dbo].[MyTable]
Run Code Online (Sandbox Code Playgroud)
以下是表格说明:
CREATE TABLE MyTable(
Id [int] IDENTITY(1,1) NOT NULL,
b [nvarchar](50) NULL,
c [nvarchar](30) NULL,
d [int] NOT NULL,
e [nvarchar](350) NULL,
f [nvarchar](350) NULL,
g [int] NULL,
h [int] NULL,
i [int] NULL,
j [int] NOT …Run Code Online (Sandbox Code Playgroud) performance sql-server select sql-server-2014 query-performance