2014-05-15 2 views
0

안녕하세요 이것은 mysql에서 잘 작동하는 코드입니다. GRP에 대한 변수를 선언하고 코드에서 호출하는 방법이 있습니다. 이름이 모든 시간을 사전에매개 변수를 사용하여 특정 열을 호출하는 저장 프로 시저

 SELECT GRP, 
    @_11:=power(GRP,0.1)+0.1*@_11 AS GRP_11 , 
    @_12:=power(GRP,0.2)+0.1*@_12 AS GRP_12 , 
    @_13:=power(GRP,0.3)+0.1*@_13 AS GRP_13 , 
    @_14:=power(GRP,0.4)+0.1*@_14 AS GRP_14 , 
    @_15:=power(GRP,0.5)+0.1*@_15 AS GRP_15 , 
    @_16:=power(GRP,0.6)+0.1*@_16 AS GRP_16 , 
    @_17:=power(GRP,0.7)+0.1*@_17 AS San_Orange_CS_GRP_17 , 
    @_18:=power(GRP,0.8)+0.1*@_18 AS GRP_18 , 
    @_19:=power(GRP,0.9)+0.1*@_19 AS GRP_19 , 
    from DUMMY JOIN (SELECT @_11:=0,@_12:=0,@_13:=0,@_14:=0,@_15:=0,@_16:=0, 
    @_17:=0,@_18:=0,@_19:=0) t; 

감사를 계속 변경 때문에 내가, GRP 및 다른 이름이 아닌 다른 열 계산을해야하는 경우 난 ... 코드를 다시 사용할 수 있도록

+0

'@grp 선택 = GRP를 GRP로, _11 @ = 전력 (@grp를, 0.1) +0.1 * @ _ 11 AS GRP_11, ... ' –

+0

감사합니다. – user3571489

+0

@Ravinder AS GRP_11은 어떻습니까? 거기도 GRP를 변경할 수 있습니까? – user3571489

답변

0

인라인 변수를 사용할 수 있습니다.

: 아래

select @grp:=GRP as grp, @_11:=power(@grp,0.1)+0.1*@_11 AS GRP_11, ... 

변경 쿼리는 :

SELECT 
    @grp := GRP as grp, 
    @_11 := power(@grp, 0.1) + 0.1 * @_11 AS GRP_11 , 
    @_12 := power(@grp, 0.2) + 0.1 * @_12 AS GRP_12 , 
    @_13 := power(@grp, 0.3) + 0.1 * @_13 AS GRP_13 , 
    @_14 := power(@grp, 0.4) + 0.1 * @_14 AS GRP_14 , 
    @_15 := power(@grp, 0.5) + 0.1 * @_15 AS GRP_15 , 
    @_16 := power(@grp, 0.6) + 0.1 * @_16 AS GRP_16 , 
    @_17 := power(@grp, 0.7) + 0.1 * @_17 AS San_Orange_CS_GRP_17 , 
    @_18 := power(@grp, 0.8) + 0.1 * @_18 AS GRP_18 , 
    @_19 := power(@grp, 0.9) + 0.1 * @_19 AS GRP_19 , 
FROM DUMMY 
    JOIN ( 
      SELECT @_11:=0, @_12:=0, @_13:=0, @_14:=0, @_15:=0, 
        @_16:=0, @_17:=0, @_18:=0, @_19:=0 
     ) t; 
당신은 같이 사용할 수 있습니다
+0

......... AS @ grp_11을 제공 할 수 있습니까? 이름을 자주 변경해야하기 때문에 ... – user3571489

+0

이것은 저장 프로 시저의 준비된 문에서만 가능합니다. –

+0

그러나 쿼리가 단일 행을 반환하면 의미가 있습니다. 다중 행 결과 집합의 경우 각 행에 대해 별칭을 설정할 수 없으며 오류도 발생합니다. –

관련 문제