是否可以在查询中设置/读取变量?
伪代码:
SELECT animal_name,
@tallest_animal = (select top 1 height from animal order by height desc) as tallest,
@smallest_animal = (select top 1 height from animal order by height asc) as smallest
FROM animals
WHERE height BETWEEN @smallest_animal AND @tallest_animal
我知道可以通过改变查询来实现结果,我的问题的实际用途太难以解释。
这是有问题的 Microsoft SQL Server。 :)
是的,您可以在查询中设置变量。您的语法实际上非常接近。
为此,您需要:
SELECT @YourVariable = Column
FROM Animals
注意:将字段分配给变量时不能使用 AS。
您必须确保查询中的所有字段都分配给一个变量,否则您将收到以下错误:
为变量赋值的 SELECT 语句不得与数据检索操作结合使用。
要解决这个问题,只需将 AnimalName 分配给 @AnimalName 变量即可。
Edit:
DECLARE @AnimalName VARCHAR(20)
DECLARE @TallestAnimal INT
DECLARE @SmallestAnimal INT
SELECT @AnimalName = animal_name,
@TallestAnimal = (select top 1 height from animal order by height desc),
@SmallestAnimal = (select top 1 height from animal order by height asc)
FROM animals
WHERE height BETWEEN @SmallestAnimal AND @TallestAnimal
此代码假设高度字段的类型为 INT。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)