Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将Case语句值赋给变量_Sql_Case - Fatal编程技术网

Sql 将Case语句值赋给变量

Sql 将Case语句值赋给变量,sql,case,Sql,Case,我正在为PPK编写一个函数。如果我消除了“END AS@PPK”,我可以让这个Case语句工作,但是当我尝试将最终结果分配给我的变量时,我得到了一个语法错误。有谁能告诉我这里出了什么问题吗:谢谢 DECLARE @USL AS DECIMAL(5,2) DECLARE @LSL AS DECIMAL(5,2) DECLARE @AVG AS DECIMAL(5,2) DECLARE @SDEV AS DECIMAL(5,2) SET @USL = 6.143 SET @LSL = 2.9382

我正在为PPK编写一个函数。如果我消除了“END AS@PPK”,我可以让这个Case语句工作,但是当我尝试将最终结果分配给我的变量时,我得到了一个语法错误。有谁能告诉我这里出了什么问题吗:谢谢

DECLARE @USL AS DECIMAL(5,2)
DECLARE @LSL AS DECIMAL(5,2)
DECLARE @AVG AS DECIMAL(5,2)
DECLARE @SDEV AS DECIMAL(5,2)

SET @USL = 6.143
SET @LSL = 2.9382
SET @AVG = 4.1
SET @SDEV = 1.6

DECLARE @PPK DECIMAL(5,2)

DECLARE @VAL1 DECIMAL(5,2)
DECLARE @VAL2 DECIMAL(5,2)

SET @VAL1 = (@USL - @AVG)/(3*@SDEV)
SET @VAL2 = (@AVG - @LSL)/(3*@SDEV)
SELECT @VAL1
SELECT @VAL2

SELECT CASE
    WHEN @VAL1 < @VAL2
    THEN @VAL1
    ELSE @VAL2 END
--END AS @PPK
将@USL声明为十进制(5,2)
将@LSL声明为十进制(5,2)
将@AVG声明为十进制(5,2)
将@SDEV声明为十进制(5,2)
设置为USL=6.143
设置为LSL=2.9382
设置为平均值=4.1
设置为@SDEV=1.6
声明@PPK十进制(5,2)
声明@VAL1十进制(5,2)
声明@VAL2十进制(5,2)
设置@VAL1=(@USL-@AVG)/(3*@SDEV)
设置@VAL2=(@AVG-@LSL)/(3*@SDEV)
选择@VAL1
选择@VAL2
选择案例
当@VAL1<@VAL2
然后@VAL1
ELSE@VAL2 END
--以@PPK结束
选择@PPK=CASE
当@VAL1<@VAL2
然后@VAL1
ELSE@VAL2 END
SELECT @PPK = CASE
    WHEN @VAL1 < @VAL2
    THEN @VAL1
    ELSE @VAL2 END