小编Luk*_*zda的帖子

ALTER TABLE DROP INDEX 在非内存优化的表上失败

我正在尝试删除在表上创建的索引,但出现此错误 -

只有内存优化表才支持“ALTER TABLE DROP INDEX”操作。

我需要删除此索引才能删除表中的字段。有没有办法在不复制表和迁移所有数据的情况下做到这一点?

sql memory-optimized-tables azure-sql-database

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

SQL:最过期的数字对?

我们有此表和随机数据加载:

CREATE TABLE [dbo].[webscrape](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [date] [date] NULL,
    [value1] [int] NULL,
    [value2] [int] NULL,
    [value3] [int] NULL,
    [value4] [int] NULL,
    [value5] [int] NULL,
    [sumnumbers] AS ([value1]+[value2]+[value3]+[value4]+[value5])
) ON [PRIMARY]


declare @date date = '1990-01-01',
@endDate date = Getdate()

while @date<=@enddate
begin
insert into [dbo].[webscrape](date,value1,value2,value3,value4,value5)
SELECT @date date,FLOOR(RAND()*(36-1)+1) value1,
FLOOR(RAND()*(36-1)+1) value2,
FLOOR(RAND()*(36-1)+1) value3,
FLOOR(RAND()*(36-1)+1) value4,
FLOOR(RAND()*(36-1)+1) value5

set @date = DATEADD(day,1,@date)
end

select * from [dbo].[webscrape] 
Run Code Online (Sandbox Code Playgroud)

在SQL中,我们如何返回在给定日期没有出现的最长的一对值?

而且(如果您碰巧知道的话)在Power BI问题与解答NLP中,我们如何进行映射,以便我们可以用自然语言问“何时出现了最过期的对?”。

过期是自给定日期以来发生时间最长的一对数字。

更新:我正在尝试这个非常丑陋的代码。有任何想法吗:

  select *
    from (
      select date,value1 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server nlp powerbi

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

Oracle 11g:取消透视多列并包含列名

我想在我的数据集中删除多个列.这是我的数据的样子.

CREATE TABLE  T5 (idnum NUMBER,f1 NUMBER(10,5),f2 NUMBER(10,5),f3 NUMBER(10,5)
                 ,e1 NUMBER(10,5),e2 NUMBER(10,5)
                 ,h1 NUMBER(10,5),h2 NUMBER(10,5));

INSERT INTO T5 (IDNUM,F1,F2,F3,E1,E2,H1,H2) 
VALUES (1,'10.2004','5.009','7.330','9.008','8.003','.99383','1.43243');
INSERT INTO T5 (IDNUM,F1,F2,F3,E1,E2,H1,H2
VALUES (2,'4.2004','6.009','9.330','4.7008','4.60333','1.993','3.3243');
INSERT INTO T5 (IDNUM,F1,F2,F3,E1,E2,H1,H2)
VALUES (3,'10.2040','52.6009','67.330','9.5008','8.003','.99383','1.43243');
INSERT INTO T5 (IDNUM,F1,F2,F3,E1,E2,H1,H2)
VALUES (4,'9.20704','45.009','17.330','29.008','5.003','3.9583','1.243');

COMMIT;

select * from t5;

IDNUM    F1    F2     F3        E1      E2       H1     H2

1   10.2004 5.009   7.33    9.008   8.003   0.99383 1.43243
2   4.2004  6.009   9.33    4.7008  4.60333 1.993   3.3243
3   10.204  52.6009 67.33   9.5008  8.003   0.99383 1.43243
4   9.20704 45.009  17.33 …
Run Code Online (Sandbox Code Playgroud)

sql oracle unpivot oracle11g

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

SQL赋值变量和子查询

我有一个关于2 SQL的问题:

declare @i1 bit, @b1 bit
declare @i2 bit, @b2 bit
declare @t table (Seq int)
insert into @t values (1)

-- verify data
select case when (select count(1) from @t n2 where 1 = 2) > 0 then 1 else 0 end
-- result 0

select @i1 = 1, @b1 = case when @i1 = 1 or ((select count(1) from @t n2 where 1 = 2) > 0) then 1 else 0 end from @t n where n.Seq …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

嵌套聚合函数 - SQL

我想制作一个SQL查询,找到平均评分最高的电影奖项,所以对于一组获得特定奖项的电影,如果他们的平均评分高于其他任何一组电影那么它将被退回.

我试过这样的事情:

SELECT MAX(AVG(m."Rating"))
FROM awards a, movies m
WHERE a."Title" = m."Title"
GROUP BY a."Award"
Run Code Online (Sandbox Code Playgroud)

但似乎聚合函数不能嵌套.如何在每个类别的平均评级上调用max函数?

sql postgresql aggregate-functions

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

在MySQL中创建"数字表"

我正在尝试在MySQL中生成一个连续数字的大表.

我只想要2列; 主键和数字列,范围为0-X,其中X非常大.约.64,000行应该这样做.我试过这段代码没有成功:

CREATE TABLE numbers (
   number           INT         NOT NULL
   CONSTRAINT XPKnumbers
      PRIMARY KEY CLUSTERED (number)
    )

INSERT INTO numbers (number) VALUES (0)

DECLARE @i          INT
SET @i = 20

WHILE 0 < @i
   BEGIN
      INSERT INTO numbers (number)
         SELECT number + (SELECT 1 + Max(number) FROM numbers)
            FROM numbers

      SET @i = @i - 1
   END

SELECT * FROM numbers
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'CONSTRAINT XPKnumbers PRIMARY KEY CLUSTERED(数字)附近使用正确的语法.在第3行插入n'

有人建议让这项工作吗?

mysql sql

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

有没有办法在SELECT*FROM语句中TRIM所有数据?

我试图使用以下语句选择并修剪表中的所有条目:

SELECT TRIM(*) FROM TABLE
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.有没有办法返回所有选中的条目,以便在每个字符串的开头和结尾处为空白字符修剪它们?

sql trim

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

增加条纹列

如何将以下结果以黄色突出显示? 在此输入图像描述

基本上我想要一个计算字段,当VeganOption = 1时递增1,当VeganOption = 0时递增为零

我尝试使用以下查询,但使用分区后继续增加零.我有点卡在这个上面.

SELECT [UniqueId]
      ,[Meal]
      ,[VDate]
      ,[VeganOption]
      , row_number() over (partition by [VeganOption] order by [UniqueId])
  FROM [Control]
  order by [UniqueId]
Run Code Online (Sandbox Code Playgroud)

表数据:

CREATE TABLE Control
    ([UniqueId] int, [Meal] varchar(10), [VDate] datetime, [VeganOption] int);

INSERT INTO Control ([UniqueId], [Meal], [VDate], [VeganOption])
VALUES
('1', 'Breakfast',' 2018-08-01 00:00:00', 1),
('2', 'Lunch',' 2018-08-01 00:00:00', 1),
('3', 'Dinner',' 2018-08-01 00:00:00', 1),
('4', 'Breakfast',' 2018-08-02 00:00:00', 1),
('5', 'Lunch',' 2018-08-02 00:00:00', 0),
('6', 'Dinner',' 2018-08-02 00:00:00', 0),
('7', 'Breakfast',' 2018-08-03 00:00:00', …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server gaps-and-islands sql-server-2016

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

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

SELECT FOR XML AUTO并返回数据类型

在玩游戏期间,sys.dm_exec_describe_first_result_set我到达这一点:

CREATE TABLE #tab(col INT, x XML );
INSERT INTO #tab(col,x) VALUES (1,NULL), (2,NULL), (3,'<a>x</a>');

SELECT 'Simple XML' AS description, name, system_type_name
FROM sys.dm_exec_describe_first_result_set(
   N'SELECT col
     FROM #tab
     FOR XML AUTO', NULL, 0)  
UNION ALL
SELECT 'Wrapped with subquery', name, system_type_name
FROM sys.dm_exec_describe_first_result_set(
   N'SELECT(SELECT col
            FROM #tab
            FOR XML AUTO) AS wrapped_subquery', NULL, 0)
UNION ALL 
SELECT 'XML column', name, system_type_name
FROM sys.dm_exec_describe_first_result_set(
   N'SELECT x FROM #tab ', NULL, 0)
UNION ALL
SELECT 'Casted XML', name, system_type_name
FROM …
Run Code Online (Sandbox Code Playgroud)

xml sql t-sql sql-server sql-server-2012

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