Sql server 2008 有没有一种方法可以运行快速的伪SQL查询来测试聚合函数,就像这样?
我意识到这可能是一个非常新的问题,我完全遗漏了一些东西,但我想使用Sql server 2008 有没有一种方法可以运行快速的伪SQL查询来测试聚合函数,就像这样?,sql-server-2008,ssms,Sql Server 2008,Ssms,我意识到这可能是一个非常新的问题,我完全遗漏了一些东西,但我想使用MIN和字符串(在MSSQL中)进行测试: 但它告诉我: Msg 174,15级,状态1,第5行最小功能需要1 论点 现在这对我来说很有意义,但如果可能的话,我想做类似的事情 有没有一种方法可以在不使用特定表的情况下执行类似的操作 使用表变量怎么样 DECLARE @TABLE Table (str varchar(100)) INSERT @TABLE (str) VALUES ('d3d742ce-f12e-4402-9a0e
MIN
和字符串(在MSSQL中)进行测试:
但它告诉我:
Msg 174,15级,状态1,第5行最小功能需要1
论点
现在这对我来说很有意义,但如果可能的话,我想做类似的事情
有没有一种方法可以在不使用特定表的情况下执行类似的操作 使用表变量怎么样
DECLARE @TABLE Table (str varchar(100))
INSERT @TABLE (str) VALUES ('d3d742ce-f12e-4402-9a0e-8a05066f6bed')
INSERT @TABLE (str) VALUES ('03f8d7a7-9feb-4375-b7ff-04c187d46009')
INSERT @TABLE (str) VALUES ('1c180a55-ce67-4ab4-afe5-9d9907ed1c21')
SELECT MIN(str) FROM @TABLE
始终可以使用联合动态创建自己的派生表:
select min(MyCol)
from (
select 'd3d742ce-f12e-4402-9a0e-8a05066f6bed' as MyCol
union all select '03f8d7a7-9feb-4375-b7ff-04c187d46009'
union all select '1c180a55-ce67-4ab4-afe5-9d9907ed1c21'
) as MyDerivedTable
在本例中,我使用的是union all
,因为当您知道您的测试数据都是唯一的(它不会隐式地像unict那样运行)时,这会更快
同样的技术也可用于:
我用分号开头这条语句,因为如果您没有用分号终止上一条语句,SQL Server会抱怨
但是,这只在一定程度上有效,因为在不得不求助于之前,您只能在查询中使用256个表。就是这样:(从SQL Server 2008开始工作)
酷-这真的很有帮助。但是有一件事——我没有这个数据库的写权限。无论如何让我试试,谢谢+1,这是我快速处理测试数据的首选方法,包括在这里尝试回答问题时。返回+1,我考虑的是一个派生表,但也经常抛出表变量。
select min(MyCol)
from (
select 'd3d742ce-f12e-4402-9a0e-8a05066f6bed' as MyCol
union all select '03f8d7a7-9feb-4375-b7ff-04c187d46009'
union all select '1c180a55-ce67-4ab4-afe5-9d9907ed1c21'
) as MyDerivedTable
;with CTE as (
select 'd3d742ce-f12e-4402-9a0e-8a05066f6bed' as MyCol
union all select '03f8d7a7-9feb-4375-b7ff-04c187d46009'
union all select '1c180a55-ce67-4ab4-afe5-9d9907ed1c21'
)
select min(MyCol)
from CTE
SELECT min(id)
FROM (
VALUES
('d3d742ce-f12e-4402-9a0e-8a05066f6bed'),
('03f8d7a7-9feb-4375-b7ff-04c187d46009'),
('1c180a55-ce67-4ab4-afe5-9d9907ed1c21')) AS guids(id)