programing

Oracle: 비교 작업에서 하위 쿼리의 공백이 있는 별칭을 참조하는 방법

mailnote 2023. 8. 9. 20:57
반응형

Oracle: 비교 작업에서 하위 쿼리의 공백이 있는 별칭을 참조하는 방법

Oracle SQL Query에서 공백이 있는 별칭을 참조할 수 있는 방법이 있습니까?아직 어디서도 못 찾았어요.일반적으로 데이터베이스 구성요소의 이름을 지정하는 데 공백을 사용하지 않기 때문에, 이것은 저에게 새로운 영역입니다.

다음은 쿼리 예제입니다.

SELECT  t.id AS "Ticket ID",
(SELECT w.workgroup_title FROM workgroups w
WHERE w.operator_id = t.operator_id AND ROWNUM < 2) AS "Workgroup Title"
FROM tickets t

향후 비교 작업에서 "티켓 ID" 또는 "워크그룹 제목"을 어떻게 사용합니까?예:

"티켓 ID" == 9 또는 "작업 그룹 제목" == '작업 그룹 #1'

이것을 할 수 있는 쉬운 방법이 있을 것 같은데, 아직 찾지 못했습니다.

감사합니다!

PS 이것은 저에게 건네진 유산 조각입니다.SQL의 별칭은 다른 다양한 코드와 동적으로 연결되며 모두 공백을 가집니다.결과적으로 공간을 제거하는 것은 간단한 문제가 아니며 현재 저는 공간을 제거할 시간이 없습니다.그렇지 않으면 그렇게 할 겁니다.

명확화를 위해 편집
위의 예를 사용하여 "작업 그룹 제목"이 항상 별칭을 나타내는 경우 이와 같은 작업을 수행하려면 어떻게 해야 합니까?

SELECT  t.id AS "Ticket ID",
(SELECT w.workgroup_title FROM workgroups w
WHERE w.operator_id = t.operator_id AND ROWNUM < 2) AS "Workgroup Title",
(SELECT s.support_tier_id FROM support_tiers s
WHERE s.workgroup_title == "Workgroup Title") AS "Support Tier ID"
FROM tickets t

예, 이렇게 할 수 있지만, 이러한 이름은 큰따옴표로 묶어야 합니다.

-- SQL Example
SELECT "Just one" FROM (
  SELECT 1 AS "Just one" FROM dual
);

출력:

단 하나----------1
-- PL/SQL Example
BEGIN
  FOR v_rec IN (SELECT 1 AS "Just one" FROM dual)
  LOOP
    dbms_output.put_line(v_rec."Just one");
  END LOOP;
END;
/

출력:

1

그리고 약간의 호기심이 있습니다.

BEGIN
  FOR v_rec IN (SELECT COUNT(1) * 10 FROM dual)
  LOOP
    dbms_output.put_line(v_rec."COUNT(1)*10");
  END LOOP;
END;

효과가 있습니다.및 인쇄:

10

편집

다음과 같은 별칭 열을 쿼리의 다른 위치에서 참조할 수 있습니다.

SELECT 'It is just one' FROM (
  SELECT "Just one" FROM (
    SELECT 1 AS "Just one" FROM dual
  ) t
WHERE t."Just one" = 1 -- prefixing with t. is not necessary in this particular example
);

출력:

그것은 단지 하나입니다.

언급URL : https://stackoverflow.com/questions/19942767/oracle-how-to-reference-an-alias-with-a-space-from-a-subquery-in-a-comparison-o

반응형