복붙노트

[SQL] 어떻게 쿼리에 매개 변수를 전달하는 방법?

SQL

어떻게 쿼리에 매개 변수를 전달하는 방법?

난 내 응용 프로그램에 대한 쿼리를 작성하기 위해 노력하고있어,하지만 난 어떤 문제에 봉착했습니다. 내가 좋아하는 내 데이터베이스의 매개 변수를 하나의 필드로 전달해야합니다 :

SELECT name, phone, email 
FROM company 
WHERE $P{clause} = $P{key}
ORDER BY $P{order}

절 BY 절과 ORDER 사용자가 선택을위한 동적 WHERE 때문에.

$ P를 사용하여 {}가 작동하지 않았다.

해결법

  1. ==============================

    1.이 구문은 JasperReports에 참조 매개 변수에 대한 표현이 있습니다! $ P {}와 $ P는 {}.

    이 구문은 JasperReports에 참조 매개 변수에 대한 표현이 있습니다! $ P {}와 $ P는 {}.

    샘플:

    | Parameter name |  Parameter type   | Parameter value |
    |:---------------|-------------------|:---------------:|
    |   eventName    | java.lang.String  |  Olympic Games  |
    |   eventType    | java.lang.Integer |       2         |
    

    원래 표현 (대체 할) :

    SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType} 
    

    그 결과는 다음과 같습니다

    SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2 
    

    샘플:

    | Parameter name |  Parameter type   | Parameter value |
    |:---------------|------------------:|:---------------:|
    |   tableName    | java.lang.String  |     events      |
    |   eventName    | java.lang.String  |  Olympic Games  |
    |   channel      | java.lang.String  |     'BBC'       |
    |   type         | java.lang.String  |     sport       |
    

    원래 표현 (대체 할) :

    SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type} 
    

    그 결과는 다음과 같습니다

    SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
    

    자세한 내용은이 쿼리 샘플에서이 사용 보고서 매개 변수 포스트와 모양을 읽을 수 있습니다.

    귀하의 경우에는 올바른 표현은 다음과 같이 할 수있다 :

    SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
    

    $ P {키} java.lang.String의 매개 변수입니다

    또는 다음과 같이 (이 $ P에 따라 달라집니다! {절} 값)

    SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
    

    $ P {키} java.lang.String의 매개 변수입니다

  2. ==============================

    2.당신이 매개 변수에 의해 주문해야하는 경우이 시도 :

    당신이 매개 변수에 의해 주문해야하는 경우이 시도 :

    SELECT name, phone, email ,(case when $P{order} = 'name' then name when $P{order} = 'phone' then phone else email end) as orderlist
    FROM company 
    WHERE $P{clause} = $P{key}
    ORDER BY orderlist
    
  3. from https://stackoverflow.com/questions/11871042/how-to-pass-parameters-to-query by cc-by-sa and MIT license