我最近开发了一个存储过程,它本质上是从几个不同的表中查询数据,操作它,然后将结果插入到特定的表中。
最后,它是一个INSERT语句,有许多子查询,大约有300行。该代码具有很强的性能;但是,它的可读性不强,可能还有其他缺点。
编写这样的查询是否符合推荐的用法:
SELECT ...
INTO #tempfoo
FROM foo;
SELECT ...
INTO #tempbar
FROM bar;
SELECT ...
FROM #tempfoo
INNER JOIN #tempbar ON #tempfoo.id = #tempbar.id;
或者像这样写它更好,尽管它可能变得
我想联合3个不同的语句,问题是我使用了一个循环,如果在我的查询中:
WHILE some condition
BEGIN
if(condition 1)
begin
select something
end
else if(condition 2)
begin
select something
end
else if(condition 3)
begin
select something
end
END
查询运行良好,但它返回了100多个不同的select结果(不同的表)。如何将这些select结果合并到一个表中?
开诚布公:好的,各位,老板需要一个答案,我需要加薪。这似乎不是一个冷缓存问题。
更新:
我听从了下面的建议,但没有结果。客户端统计数据是如何提供一组有趣的数字的。
#temp vs @temp
插入、删除和更新语句的数量0 vs 1
受INSERT、DELETE或UPDATE语句0 vs 7647影响的行
选择语句0对0的数目
SELECT语句0对0返回的行
交易数0比1
最有趣的是受影响的行数和事务数。为了提醒您,下面的查询返回相同的结果集,只返回不同类型的表。
下面的查询是做同样事情的基本方法。它们都选择一组结果(大约7000),并将其填充到临时表或var表中。在我看来,var表@ te
有没有办法将这个查询的结果插入到SSMS的临时表中?我已经尝试了许多方法,但到目前为止都失败了。
或者还有另一种方法,所有我都在寻找它来查询这个结果,并连接另一个表,这似乎是我在查询本身中做不到的。
USE CommDB
;With CTE AS (SELECT s.attendanceNumber,
MAX(CASE WHEN s.rnk = 1 THEN s.ExamExaminationCode END) as examCode1,
MAX(CASE WHEN s.rnk = 2 THEN s.ExamExaminationCode END) as exa
我有一个查询(简化),它计算C
SELECT A + B AS C FROM Foo
查询返回50万行。
我需要选择C< 0.3的行。为此,我将结果插入临时表#Bar中。
INSERT INTO #Bar
SELECT A + B AS C FROM Foo
并适用该条件
SELECT *
FROM #Bar
WHERE C < 0.3
根据执行计划,Table Insert成本为86%。有更好的方法来获得C < 0.3吗?我尝试过一个嵌套查询,它是一样的。
我希望将动态查询的结果插入到临时表中,或者将此结果作为表使用。例如:
declare str varchar(2000);
set @str="select
from
`cdr` ";
PREPARE stmt1 FROM @str;
EXECUTE stmt1;
现在我想执行这样的查询
select * from stmt1;
我有一个名为@MatchTemp.I的表变量。我使用select语句编写了一个插入查询,如下所示
Insert into @MatchTemp(StoreName,CompanyCode,StoreCode,Address,CityState)
Select s.StoreName,co.CompanyCode,s.StoreCode,s.BuildingName as Address,s.City+','+st.StateName as CityState
from Cashsafes c
inner join Stores s on s.StoreId=c.StoreI
你好,伙计们,我需要用我的查询结果填充一个表,就像.
SELECT FIELD1, FIELD2, X FROM OLDTABLE WHERE X=Y
我是一个Java开发人员,我的朋友,AS400中的RPG开发人员。当它们执行查询时,可以选择将查询结果保存在文件中。
该选项名为SELECT ,可以选择1显示2打印机3文件
可以直接从查询中执行此操作吗?还是本机iSeries选项?
出于某种原因,我只需要一个查询就可以完成我的项目。
select empId, lastName,firstName,employee.sinNum,departmentId,position,baseSalary,gender,age,emailAddr,phoneNum from employee join person
on employee.sinNum = person.sinNum
上面将生成一个结果集,我希望将值插入到这个结果集中。
Insert into (empId, lastName,firstName,employee.sinNum,departmentId,positi
我在编写语法方面遇到了一些困难,这将为我提供几个结果的最新日期。有点背景,我从一个IBM中提取实时数据,我没有AS400表,我通过ODBC连接到这些表,使用QTODBC创建我的查询,然后将它们导出到Power。据我所知,从AS400表中提取数据与SQL查询略有不同,但没有多大差别。
这就是数据的样子,该序列号在不同日期的多个事务。
我可以通过省略HVUSER得到最近的约会。
select
HVSERN,
MAX(HVTDAT) as Date
From SERH
Where HVSERN = '519488536' (there are th
我们在存储过程中使用表变量时遇到了性能问题。
以下是实际发生的情况:
DECLARE @tblTemp TABLE(iId_company INT)
INSERT INTO @tblTemp(iId_company)
SELECT id FROM .....
SELECT返回138个结果,但是在表变量中插入需要1分钟15,但是当我使用带有相同SELECT的临时表时,woops需要0秒:
CREATE TABLE #temp (iId_company INT)
INSERT INTO #temp(iId_company)
SELECT id FROM ...
是什么导致了这种行为?