簡體   English   中英

關於CASE語句的LPAD和RPAD

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM