[英]LPAD and RPAD on a CASE statement
我正在嘗試在帶有3個星號的case語句的左側和右側填充。 它會運行,但不會顯示Null值。 有任何想法嗎?
SELECT p.patientfirstname || ' ' || p.patientlastname AS "Patient"
,CASE WHEN i.insuranceid IS NULL THEN RPAD(LPAD('No insurance', 3, '*'), 3, '*')
ELSE i.insurancename
END "Insurance Name"
FROM patient p
FULL OUTER JOIN insurance i ON (p.insuranceid = i.insuranceid);
正如我在評論中所寫的那樣,如果您想要一個常量字符串,則只需使用一個並取消填充即可:
SELECT p.patientfirstname || ' ' || p.patientlastname AS "Patient"
,CASE WHEN i.insuranceid IS NULL THEN '***No insurance***'
ELSE i.insurancename
END "Insurance Name"
FROM patient p
FULL OUTER JOIN insurance i ON (p.insuranceid = i.insuranceid);
填充用於在處理可變大小較短的字符串時確保固定大小的字符串。 參見示例:
select lpad('Hola',7, '*'), lpad('Namaste',7, '*'), lpad('Hello',7, '*') from dual;
*** Hola | Namaste | **您好
select length(lpad('Hola',7, '*')), length(lpad('Namaste',7, '*')), length(lpad('Hello',7, '*')) from dual;
7 | 7 | 7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.