select
MITARBEITER.NAME,
MITARBEITER.GEHALT
from
MITARBEITER
where MITARBEITER.GEHALT = @minGehalt
DECLARE @minGehalt as INT
SET @minGehalt = (SELECT MIN(MITARBEITER.GEHALT) FROM MITARBEITER)
EXEC @minGehalt
@minGehalt是一个数字
我的问题是它没有宣布
答案 0 :(得分:0)
您需要在使用之前声明变量。这应该有效:
DECLARE @minGehalt as INT
SET @minGehalt = SELECT MIN(MITARBEITER.GEHALT) FROM MITARBEITER
SELECT
MITARBEITER.NAME,
MITARBEITER.GEHALT
FROM
MITARBEITER
WHERE
MITARBEITER.GEHALT = @minGehalt
(我没有对此进行测试,因为我没有可用的MySQL实例,但这应该可以解决问题)
答案 1 :(得分:0)
使用@
登录查询意味着您正在使用参数。需要使用DECLARE
命令声明参数:
DECLARE @minGehalt int;
您还可以使用SET
命令设置值:
DECLARE @minGehalt int;
SET @minGehalt = 1234;
select
.....
或者在你的例子中:
DECLARE @minGehalt as INT
SET @minGehalt = SELECT MIN(MITARBEITER.GEHALT) FROM MITARBEITER
select MITARBEITER.NAME,MITARBEITER.GEHALT
from MITARBEITER
where MITARBEITER.GEHALT = @minGehalt
答案 2 :(得分:0)
DECLARE @minGehalt as INT
DECLARE @maxGehalt as INT
DECLARE @minName as varchar(30)
DECLARE @maxName as varchar(30)
SET @minGehalt = (SELECT MIN(MITARBEITER.GEHALT) FROM MITARBEITER)
SET @maxGehalt = (SELECT MAX(MITARBEITER.GEHALT) FROM MITARBEITER)
SET @minName = (SELECT MITARBEITER.NAME FROM MITARBEITER WHERE MITARBEITER.GEHALT = @minGehalt)
SET @maxName = (SELECT MITARBEITER.NAME FROM MITARBEITER WHERE MITARBEITER.GEHALT = @maxGehalt)
select
concat(@minName, ' ', @minGehalt) as 'Minimaler Gehalt',
concat(@maxName, ' ', @maxGehalt) as 'Maximaler Gehalt'
以这种方式工作,谢谢大家!