我有一个我需要执行的动态SQL,然后我需要将结果存储到变量中.
我知道我可以使用,sp_executesql但无法找到关于如何做到这一点的明确例子.
我的查询如下,并在其中包含一个子查询:
select count(distinct dNum)
from myDB.dbo.AQ
where A_ID in
(SELECT DISTINCT TOP (0.1) PERCENT A_ID,
COUNT(DISTINCT dNum) AS ud
FROM myDB.dbo.AQ
WHERE M > 1 and B = 0
GROUP BY A_ID ORDER BY ud DESC)
Run Code Online (Sandbox Code Playgroud)
我收到的错误是......
Only one expression can be specified in the select list when the subquery is not
introduced with EXISTS.`
Run Code Online (Sandbox Code Playgroud)
当我单独运行子查询时,它返回正常,所以我假设主查询存在一些问题?
我有一个Test带有列的表的MS SQL 2005数据库ID.ID是一个标识列.
我在这个表中有行,并且所有行都有相应的ID自动增量值.
现在我想更改此表中的每个ID,如下所示:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到一个错误:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
我试过这个:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
但这并没有解决问题.
我需要将标识设置为此列,但我还需要不时更改值.所以我的问题是如何完成这项任务.
t-sql sql-server identity sql-server-2005 sql-server-2005-express
如何使用SQL Server Management Studio创建复合键?
我想要两个INT列来形成表的标识(唯一)
我在使用LINQ to SQL找出如何使用多个左外连接时遇到了一些麻烦.我理解如何使用一个左外连接.我正在使用VB.NET.下面是我的SQL语法.
T-SQL
SELECT
o.OrderNumber,
v.VendorName,
s.StatusName
FROM
Orders o
LEFT OUTER JOIN Vendors v ON
v.Id = o.VendorId
LEFT OUTER JOIN Status s ON
s.Id = o.StatusId
WHERE
o.OrderNumber >= 100000 AND
o.OrderNumber <= 200000
Run Code Online (Sandbox Code Playgroud) 就像我一样
SELECT [Date]
FROM [FRIIB].[dbo].[ArchiveAnalog]
GROUP BY [Date]
Run Code Online (Sandbox Code Playgroud)
我该如何指定小组期?
MS SQL 2008
第二次编辑
我尝试着
SELECT MIN([Date]) AS RecT, AVG(Value)
FROM [FRIIB].[dbo].[ArchiveAnalog]
GROUP BY (DATEPART(MINUTE, [Date]) / 10)
ORDER BY RecT
Run Code Online (Sandbox Code Playgroud)
将%10更改为/ 10.是否可以在没有毫秒的情况下进行日期输出?
UPDATE dbo.TestStudents
SET LASTNAME =
( CASE
WHEN (LASTNAME = 'AAA') THEN 'BBB'
WHEN (LASTNAME = 'CCC') THEN 'DDD'
WHEN (LASTNAME = 'EEE') THEN 'FFF'
ELSE (LASTNAME)
END )
Run Code Online (Sandbox Code Playgroud)
该语句适用于此目的,但else条件扫描表中的每条记录.有什么方法可以保留未受影响的行吗?
我有一个包含用户及其成绩的SQL Server表.为简单起见,我们只想说有2列 - name&grade.所以一个典型的行是Name:"John Doe",等级:"A".
我正在寻找一个SQL语句,它将找到所有可能答案的百分比.(A,B,C等......)另外,有没有办法在没有定义所有可能的答案的情况下这样做(开放文本字段 - 用户可以输入'通过/失败','无'等...)
我要找的最终输出是A:5%,B:15%,C:40%等等......
想象一下下表(称为TestTable):
id somedate somevalue
-- -------- ---------
45 01/Jan/09 3
23 08/Jan/09 5
12 02/Feb/09 0
77 14/Feb/09 7
39 20/Feb/09 34
33 02/Mar/09 6
Run Code Online (Sandbox Code Playgroud)
我想要一个以日期顺序返回运行总计的查询,例如:
id somedate somevalue runningtotal
-- -------- --------- ------------
45 01/Jan/09 3 3
23 08/Jan/09 5 8
12 02/Feb/09 0 8
77 14/Feb/09 7 15
39 20/Feb/09 34 49
33 02/Mar/09 6 55
Run Code Online (Sandbox Code Playgroud)
我知道在SQL Server 2000/2005/2008中有各种方法可以做到这一点.
我对使用aggregate-set-statement技巧的这种方法特别感兴趣:
INSERT INTO @AnotherTbl(id, somedate, somevalue, runningtotal)
SELECT id, somedate, somevalue, null
FROM TestTable
ORDER …Run Code Online (Sandbox Code Playgroud) 我有两个变量,一个是调用PaidThisMonth,另一个是调用OwedPast.它们都是SQL中某些子查询的结果.如何选择两者中较小的一个并将其作为标题值返回PaidForPast?
该MIN函数适用于列,而不是变量.
t-sql ×10
sql-server ×7
sql ×6
dynamic-sql ×1
exists ×1
group-by ×1
identity ×1
key ×1
left-join ×1
linq ×1
linq-to-sql ×1
sql-update ×1
ssms ×1
vb.net ×1