小编nav*_*tor的帖子

删除重复的子查询

我有一个复杂的SQL查询,可以简化到下面:

Select ColA,ColB,ColC,ColD
From MyTable
Where (ColA In (Select ItemID From Items Where ItemName like '%xxx%') 
    or ColB In (Select ItemID From Items Where ItemName like '%xxx%'))
Run Code Online (Sandbox Code Playgroud)

如您所见,子查询出现两次.编译器是否足够智能来检测它并仅获取子查询的结果一次?或者子查询运行两次?

仅供参考,表项目大约有20,000行,MyTable有大约200,000行.

是否有另一种方法来重写此SQL语句,以便子查询只出现/运行一次?

更新:主查询中的Where子句是动态的,仅在需要时添加(即仅在用户搜索"xxx"时).因此,不可能对主select语句进行更改或重新构造查询.

sql t-sql sql-server dynamic-sql common-table-expression

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

在 SQL 中复制父子结构

我有一张桌子MODELS,有几个ITEMS可以属于。该ITEMS表是一个分层表,PARENT列上有一个自联接。根级别的项目将NullPARENT. 项目可以深入任何级别。

create table MODELS (
   MODELID              int                  identity,
   MODELNAME            nvarchar(200)         not null,
   constraint PK_MODELS primary key (MODELID)
)
go

create table ITEMS (
   ITEMID               int                  identity,
   MODELID              int                  not null,
   PARENT               int                  null,
   ITEMNUM              nvarchar(20)         not null,
   constraint PK_ITEMS primary key (ITEMID)
)
go

alter table ITEMS
   add constraint FK_ITEMS_MODEL foreign key (MODELID)
      references MODELS (MODELID)
go

alter table ITEMS
   add constraint FK_ITEMS_ITEMS foreign key (PARENT)
      references …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures recursive-query sql-server-2008

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

如何找到表中不存在的值?

我有一个简化的表Bookings,有两列BookDateBookSlot.该BookDate列仅包含日期(没有时间),该BookSlot列将包含从0到1410(包括0和1410)的30分钟间隔的一天中的时间.(即600 =上午10:00)

如何在未经过循环的情况下找到未来可用的第一个插槽(未预订)?

这是表定义和测试数据:

Create Table Bookings(
    BookDate DateTime Not Null,
    BookSlot Int Not Null
)
Go

Insert Into Bookings(BookDate,BookSlot) Values('2014-07-01',0);
Insert Into Bookings(BookDate,BookSlot) Values('2014-07-01',30);
Insert Into Bookings(BookDate,BookSlot) Values('2014-07-01',60);
Insert Into Bookings(BookDate,BookSlot) Values('2014-07-01',630);
Insert Into Bookings(BookDate,BookSlot) Values('2014-07-02',60);
Insert Into Bookings(BookDate,BookSlot) Values('2014-07-02',90);
Insert Into Bookings(BookDate,BookSlot) Values('2014-07-02',120);
Run Code Online (Sandbox Code Playgroud)

我想要一种方法来返回表中没有的第一个可用插槽,以及将来(基于服务器时间).

根据以上测试数据:

  • 如果当前服务器时间是7月1日00:10 am,结果应该是7月1日,90分钟(01:30 am).
  • 如果当前服务器时间是7月2日,01:05 am,结果应该是7月2日,150分钟(02:30 am).

如果将来没有预订,该功能将简单地返回将来最接近的半小时.

-

这个SQL小提琴就在这里: …

sql sql-server

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

如何恢复原始CSS?

我有一个带有跨度的div(简化).

<div class="divDash">
    <span>XX</span>
</div>
Run Code Online (Sandbox Code Playgroud)

基于以下CSS,跨度最初是隐藏的,仅在您将鼠标悬停在div上时显示.

.divDash {height:300px;width:300px;border:1px solid gray;}
.divDash span {display:none}
.divDash:hover span {display:inline}
Run Code Online (Sandbox Code Playgroud)

基于一些用户交互,我需要使用jQuery隐藏span ...

$('.divDash').children('span').hide();
Run Code Online (Sandbox Code Playgroud)

然后,基于其他一些用户交互,我需要恢复跨度的原始行为.如果我只是再次显示跨度,$('.divDash').children('span').show();那么它将永久显示,而不仅仅是悬停.

如何恢复原始CSS行为,以便仅在悬停时显示范围?

html javascript css jquery

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

如何解决 ng 构建期间缺少 css 文件的问题?

我最近将 Angular 版本从 8 升级到 10。在修复了出现的所有问题并安装了所有组件的更新版本后,我在ng build.

ERROR in ./src/styles.css (./node_modules/css-loader/dist/cjs.js??ref--12-1!./node_modules/postcss-loader/src??embedded!./src/styles.css)
Module build failed (from ./node_modules/postcss-loader/src/index.js):
Error: Failed to find '@fullcalendar/core/main.css'
  in [
    D:\Source\Repos\Vims\VIMS\VIMS-App\src
  ]
    at D:\Source\Repos\Vims\VIMS\VIMS-App\node_modules\postcss-import\lib\resolve-id.js:35:13
    at async Promise.all (index 0)
Run Code Online (Sandbox Code Playgroud)

我尝试过更新软件包、卸载并重新安装 @fullcalendar/core 以及ng prune,但错误不会消失。我仍然缺少文件夹中的 main.css。

有人可以帮忙吗?

fullcalendar angular

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