2011-10-10 4 views
0

Firebird에서 변수 값으로 필드 이름을 참조 할 수 있습니까?Firebird에서 필드 이름을 변수로 참조하는 방법이 있습니까

"F"는 필드 이름과 "var_loop"의 첫 번째 초기입니다
Insert into tab1 (1, f1, f2, f3) 
    select 1, tab2.f+var_loop, tab2.f+var_loop, tab2.f+var_loop 
    from tab2 
    where ..... 

은, 루프 변수 당신이해야 감사

+0

연속 된 번호 매기기가있는 열은 정말 나쁜 데이터베이스 디자인과 같은 냄새가납니다 . Btw : SELECT에 대한 열 목록을 대괄호로 묶을 필요가 없습니다. –

+0

이것은 사람들이 이해할 수있는 예입니다. 다음에 내가 당신의 코로 당신의 머리로 원하는 것을 생각하지 마라 !!! – Wel

+0

접두어와 숫자 **를 연결하면 ** some_name_1','some_name_2','some_name_3'과 같은 열 이름을 얻을 수 있습니다. 그런 디자인은 정상화되지 않은 냄새가납니다. 이것이 당신이 가지고있는 것이 아니라면, 더 좋은 (즉, 의미있는) 예를 제공해야합니다. –

답변

0

아니요, 지원되지 않습니다. 나는 당신이 EXECUTE BLOCK을 사용하여 이와 같은 것을 얻을 수 있다고 생각합니다.하지만 클라이언트 측에서 올바른 SQL 문을 바로 만들 수 있습니다. ...

+0

서버 측에만 쓰기가 필요합니다. – Wel

+0

'서버 측'을 정의하십시오. 어쨌든, 당신이 이것을하고 싶다면 * 필요 * 블록을 실행하십시오. –

+0

예가 필요합니다. http://stackoverflow.com/questions/7718748/how-to-reference-firled-names-with-variable-in-firebird-stored-proceder-or-execut – Wel

0

이 작업을 수행하는 것입니다 : 예를 들어 는이 같은 SQL을 만들고 싶어 쿼리를 준비하기 전에 응용 프로그램 코드를 작성하여 SQL을 작성하십시오.

SQL의 경우 쿼리 준비시 열의 이름과 수를 고정해야합니다. 열 이름은 런타임까지 평가되지 않는 표현식을 기반으로 할 수 없습니다. 이것은 표준 SQL과 RDBMS의 모든 브랜드에서 내가 아는 한 사실입니다.

또한 SELECT 절의 열 목록에서 괄호를 사용할 수 없습니다.

+0

틀린 SQL 서버가이 기능을 가지고 있습니다. – Wel

+0

@Welliam, 쿼리 실행시 평가되는 컬럼 이름으로 SQL을 작성하는 문서 나 예제에 대한 링크를 제공 할 수 있습니까? 동적 SQL을 사용하여 시간을 준비하기 전에 쿼리를 작성할 수 있다는 것을 알고 있습니다. –

+0

예 동적 SQL입니다. http://www.sommarskog.se/dynamic_sql.html – Wel

관련 문제