SQL 变量使用简单 table

SQL Variables use in simple table

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 是一个数字

我的问题是它说它没有声明

您需要在使用前声明变量。这应该有效:

DECLARE @minGehalt as INT
SET @minGehalt = SELECT MIN(MITARBEITER.GEHALT) FROM MITARBEITER

SELECT 
    MITARBEITER.NAME,
    MITARBEITER.GEHALT
FROM
    MITARBEITER
WHERE
    MITARBEITER.GEHALT = @minGehalt

(我没有对此进行测试,因为我没有可用的 MySQL 实例,但这应该可以解决问题)

使用 @ 登录查询意味着您正在使用参数。参数需要使用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
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'

就这样,谢谢大家!