2017-03-12 5 views
1

のテキスト列を折り返す:SQL Serverの:SQL Serverのでは引用符

select gender 
from people; 

genderはそれが

male, female, children 

が、私は「男性」のような出力を達成したいです内のテキスト列と値であります、 'female'、 'children'、空白のいずれかを指定します。

どのように達成できますか?

答えて

1

textは、genderの正しいデータ型ではありません。 text,ntext、およびimageはすべてdeprecatedであり、genderのような列については信じられないほどの過剰です。

重要! ntext、text、およびimageデータ型は、将来のバージョンのSQL Serverでは削除されます。新しい開発作業でこれらのデータ型を使用しないようにし、現在使用しているアプリケーションを変更する計画を立ててください。代わりに、nvarchar(max)、varchar(max)、およびvarbinary(max)を使用してください。 coalesce()

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

または単一引用符を引用すると、次の2つの単一引用符を使用isnull()

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

を使用してを使用して

。例えば

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

リターン:私はそれを試みたとき

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

は、SQL Serverがエラーを与えている、...ありがとう - 「データ型varchar型とテキストが追加オペレータに互換性がありません」... – Oggu

+0

@Ogguを 'varchar(8)'に変換するように更新しましたが、本当に大きなものは必要ありません。また、 'text'は' gender'の正しいデータ型ではありません。 'text'、' ntext'、 'image'はすべて[**非推奨**](https://msdn.microsoft.com/en-us/library/ms187993.aspx)であり、 'ジェンダー'。 – SqlZim

+0

もう一度ありがとう!それはうまくいきました。また、私は、データ型がvarchar(max)に変わってしまいます。 – Oggu