我正在编写一个查询,基本上是从多个视图中提取多个列。是否更好地为每个视图建立索引以获得更快的性能?
查询,即A到G是视图
SELECT A.C1, B.C1
FROM A INNER JOIN B on A.C3=B.C3
Inner join C on C.C2 = B.C2
inner join D on D.C4 = C.C4
...
Inner join H ON H.C5 = G.C5
where <some condition>
每个视图(A到H)从不同的表中提取数据。所有视图都没有索引(当我在视图的树中展开索引文件夹时,我看不到任何内容)。我应该在每个视图中添加索引
在SQL Server存储过程中引用视图而不是视图中包含的SQL代码是不是更好的做法?
我看到很多这样的代码:
ALTER PROCEDURE [dbo].[Report_65PlusLivingAlone]
As
Begin
---- Select all 3 groups from base table
Select
*
INTO
#Temphouseholds
FROM
(
select b.ReportYearDescription as CensusYear
, Case When a.AggregationLevel = 'Min
我想将表中的不同行相加到不同的列中。我有一个Id列,其中有多次。当我尝试对时间表求和时,它显示不能求和时间数据类型。 下面是我的自动柜员机查询: select t.Id,
a.EndTime,
cast(A.Endtime as time)[time]
from [plugin.tickets].Ticket as T
join
[plugin.tickets].TicketActivity as TA ON TA.TicketId = T.Id
join
dbo.Activity as A on A.Id =
我在MySQL教程中找到了这个示例:
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop);
我的问题是:子查询(SELECT MAX( price ) FROM shop)是一次执行一次,还是重复执行一次,直到找到查询的最高价格?
就性能而言,其他解决方案是否更好?
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.ar
使用SQL Server 2012 (11.0.2100.60)
我使用LIKE和通配符%构造了一个匹配varchar列的查询。我遇到的问题是当我要查找的文本在代码中以文本结尾时:{CASE when _1628 LIKE '%school%‘THEN ....}
当_1628中的值是‘财产税-学校’时,它不匹配!
以前有没有人见过这个?我很容易就想出了一个解决办法,但这对我来说没有意义吗?
我有以下问题。其中一个在select语句中使用标量UDF,另一个在select语句中使用一个相关的子查询。 Select col1, col2, (select col3 from table2 t2 where t1.col1=t2.col1)
From table1 t1
Select col1, col2, dbo.getCol3Value(col1)
From table1
Create Function dbo.getCol3Value(@col1 as int)
returns int
As
declare @retCol1 int
select @returnC
我有一个执行事务的存储过程,代码是很久以前编写的,SP看起来像这样:
begin transaction
begin try
...
commit transaction
end try
begin catch
...
rollback transaction
end catch
现在。我知道EF6允许您更智能地使用事务:
using (var db = myDbContext)
using (var dbTransaction = db.DataBase.BeginTransaction)
我在Access中有以下SQL查询:
SELECT ASSIGNMENT.EMP_NUM, EMPLOYEE.EMP_LNAME, ROUND(Sum(ASSIGNMENT.ASSIGN_HOURS),1) AS Sum_OfASSIGN_HOURS, ROUND(Sum(ASSIGNMENT.ASSIGN_CHARGE),2) AS SumOfASSIGN_CHARGE
FROM ASSIGNMENT, EMPLOYEE
WHERE (((ASSIGNMENT.EMP_NUM)=[EMPLOYEE].[EMP_NUM]))
GROUP BY ASSIGNMENT.EMP_NUM, EMPLO
我一直在使用一个查询来识别我的数据库中的数据的问题:
SELECT t1.*
FROM [DailyTaskHours] t1
INNER JOIN (
SELECT ActivityDate
,taskId
,EnteredBy
FROM [DailyTaskHours]
WHERE hours != 0
GROUP BY EnteredBy
,taskId
,ActivityDate
HAVING COUNT(*) > 1
) t2 ON (
t1.Acti
我想在我的T-SQL查询中创建一个表的条件连接。本例中使用的表来自Northwind数据库(只有一个附加表ProductCategories)
表格产品和表格类别具有多对多的关系,因此表格ProductCategories应运而生。
我需要表OrderDetails上的数量列的总和属于某些类别的每个产品。所以我有一个类似于下面的查询
Select p.ProductName, Sum(od.Quantity) As Qty
From Products p
Join OrderDetails od On od.ProductID = p.ProductID
Join Produc
即使在查询中未显式引用视图,SQL Server Enterprise Edition的查询优化器也将使用视图中的索引来提高查询性能(如果适用)。问: Azure数据库也做同样的事情吗?例如,我知道SQL Server Express不这样做。我希望确保在对具有几百万用户的连接表进行排序时,仍然可以从查询优化器获得所需的性能(在企业版上效果很好,但在排序时需要几秒钟的快速瓶颈)。
我有一个表,在某些列中有一些重复的日期。
例如:我有一个表,其中有name、email和一些更多的列,其中的一些行具有相同的name和email值。我不想删除这些重复项,因为我有每行所需的其他信息。但是还有第三列'phone‘,它需要根据name和email值进行更新。所以基本上重复的行应该有相同的电话号码。
标准update查询:
update table a set a.phone = (select b.phone from table b where b.name = a.name and b.email = a.email);
返回“子查询返回超过1行错误”。
有没有可能让我
首先,我承认我并没有真正尝试使用正则表达式。我知道如何使用它,但当我想构建一个时,它是另一回事……我要记录下我自己。
我想提取SQL查询中的WHERE子句。我的目标是能够添加一个条件,如下所示:
SELECT * FROM myTbl WHERE columnA = 'B' AND columnB = 'C' ORDER BY columnX GROUP BY columnZ LIMIT 5
至:
SELECT * FROM myTbl WHERE columnC = 'D' AND (columnA = 'B' AND colu
当我在CTE中使用视图时,引用CTE的每个子查询似乎都会重新查询该视图。对于每个子查询,都会重复执行计划的大块。从表中进行选择时情况并非如此。这是意料之中的吗?有什么办法可以绕过它吗?
WITH cte AS (
SELECT v.id
FROM test_view AS v
)
SELECT TOP 25 *,
(SELECT COUNT(*) FROM cte) AS subquery
FROM cte
我正在使用SQL Server 2005
编辑:
我正在尝试使用下面的查询从页面中的视图中获取数据。我需要视图中的总行数、匹配搜索的行数以及匹配行的子集。这在从表中
我想使用SQL查询或Powershell脚本从门户获取"CPU used (Max)“和"CPU used (Avg)”。我用了"sys.elastic_pool_resource_stats",但没有提到细节。 有没有办法做到这一点,使用SQL查询。 下面是示例屏幕截图。在下面的屏幕截图中,我希望获得CPU使用率(最大值):1.94,CPU使用率(平均值):0.07。此数据为过去1个月的数据。 ?
我必须在两个条件下从表或视图中查询。我可以在if条件下重复它,但是在我的场景中,它需要在一个查询中,
类似于接收标志@reportType int的过程
SELECT
a, b, c, d, e, f, g, h,... and so many
FROM
CASE
WHEN @reportType = 1
THEN table
ELSE View
END
INNER JOIN
and so on..
我需要像上面这样写,但它正在抛出一个错误。
关键字“CASE”附近的不正确语法
我目前正在对一个旧作业进行故障排除,该作业在运行查询时花费了很长时间。旧作业使用第一个查询,但我一直在使用第二个查询进行测试。
不同之处:
Select Max(Cl1) as Tab,
Max(Cl2) as Tb,
Customer
From TableA
group by Customer
vs
Select Customer,
Tab,
tb
From
(Select Customer,
Tab,
tb,
Rank() over (partition by Customer