SQL Server:将文本列包装在引号中

时间:2017-03-12 15:03:14

标签: sql-server

在SQL Server中:

select gender 
from people;

gender是一个文本列,其中的值为

male, female, children

我希望在此列为NULL时实现“男性”,“女性”,“子女”和空白等输出。

我如何实现它?

1 个答案:

答案 0 :(得分:1)

text不是gender的正确数据类型。对于text等列,ntextimagegender都是deprecated并且令人难以置信的过度杀伤。

  

重要!将来的SQL Server版本中将删除ntext,text和image数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max),varchar(max)和varbinary(max)。

使用coalesce()

select coalesce(''''+convert(varchar(8),gender)+'''','') as gender from people;

或使用isnull()

select isnull(''''+convert(varchar(8),gender)+'''','') as gender from people;

引用单引号时,使用两个单引号。 e.g。

select '' as none, '''' as one, '''''' as two

返回:

+------+-----+-----+
| none | one | two |
+------+-----+-----+
|      | '   | ''  |
+------+-----+-----+