为字段返回空字符串SQL

问题描述:

有没有办法在SQL中的字段返回空字符串,即使该字段有数据?为字段返回空字符串SQL

SELECT NAME, AGE, DOB, GENDER, CITY 
FROM TABLE 

我想DOB,总是返回空白'

+0

我们可以把文本字符串中的SELECT列表给它一个列别名,例如'选择姓名,年龄','出生,性别,城市表格'。 (如果我们不需要返回DOB列的值,那么我们不会引用SELECT列表中的列。)要返回一个空格,我们需要返回一个空格字符''''; Oracle将零长度的字符串文字“'”解释为NULL值。 – spencer7593

在Oracle中empty VARCHAR2 is equivalent to a NULL value

所以,你可以这样做:

SELECT NAME, 
     AGE, 
     NULL AS DOB, 
     GENDER, 
     CITY 
FROM TABLE 

如果你想给它一个特定的数据类型,那么你可以使用CAST

SELECT NAME, 
     AGE, 
     CAST(NULL AS DATE) AS DOB, 
     GENDER, 
     CITY 
FROM TABLE 
+0

我想添加一个列名,但我得到一个错误的空字段。有没有办法做到这一点? –

+0

@Agent_Sully,尝试阅读错误消息。注意:我们无法看到您的电脑屏幕。 –

你可以使用NVL2

SELECT NVL2(dob, '', NULL) --rest of cols 
FROM TABLE; 

请注意:''相同NULL。所以,你必须:

SELECT '' AS DOB -- rest of cols 
FROM TABLE; 
+0

'NVL2(dob,',NULL)'与'NVL2(dob,NULL,NULL)'相同,它总是给出输出'NULL' - 所以使用'NVL2'只是过于复杂。 – MT0

+0

@ MT0是的,这就是为什么有简单的第二部分。我只是想展示如何在不使用CASE的情况下轻松与NULL进行比较。 – lad2025

试试这个:

SELECT NAME, AGE, ' ' as DOB, GENDER, CITY 
FROM TABLE 
+0

包含空格字符的字符串与空字符串不同。 – MT0

+0

同意...但原来的要求是返回一个空白... – BWS