Skip to content

Instantly share code, notes, and snippets.

@wwwy3y3
Created October 23, 2023 05:55
Show Gist options
  • Save wwwy3y3/4afad83bd9623235541ce5834275b834 to your computer and use it in GitHub Desktop.
Save wwwy3y3/4afad83bd9623235541ce5834275b834 to your computer and use it in GitHub Desktop.
test
SELECT
CASE
WHEN get_userinfo('username') = 'william' THEN appl_id
WHEN get_userinfo('username') = 'jimmy' THEN CONCAT(SUBSTRING(appl_id, 1, LENGTH(appl_id) - 6), 'XXXXXX')
ELSE appl_id
END AS appl_id
FROM ods_report
WHERE unit_code = (
SELECT
CASE
WHEN get_userinfo('username') = 'william' THEN 'a'
WHEN get_userinfo('username') = 'jimmy' THEN 'b'
ELSE unit_code
END
FROM ods_report
);
@wwwy3y3
Copy link
Author

wwwy3y3 commented Oct 23, 2023

您可以使用以下 SQL 語法來滿足您的需求:

SELECT 
  CASE 
    WHEN get_userinfo('username') = 'william' THEN appl_id
    WHEN get_userinfo('username') = 'jimmy' THEN CONCAT(SUBSTRING(appl_id, 1, LENGTH(appl_id) - 6), 'XXXXXX')
    ELSE appl_id
  END AS appl_id
FROM ods_report
WHERE 
  (get_userinfo('username') = 'william' AND unit_code = 'a') OR
  (get_userinfo('username') = 'jimmy' AND unit_code = 'b') OR
  (get_userinfo('username') NOT IN ('william', 'jimmy'));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment