2017-12-03 18 views
0

私のデータベースにユニークな数字に変換するテキストがあります。テキストを数値に変換する

たとえば、私は冬、夏、秋、春のようなすべての季節の色彩を持っています。 今、私は冬のために、例えば夏2のための番号1を望みます。

誰かが私を助けることができますか?どのように私はそれをSQLで解決できますか?あなただけのランダムな数字にすべてを変換したい場合は、あなたがに応じて、RANDOM()関数を使用することができます

SELECT 
    CASE SeasonName 
    WHEN 'Summer' THEN 1 
    WHEN 'Winter' THEN 2 
    WHEN 'Spring' THEN 3 
    WHEN 'Fall' THEN 4 
    END AS SeasonNumber 

:事前

+0

使用しているデータベースで質問にタグを付けてください。 –

答えて

1

おかげで、このような何かをCASE式を使用しますデータベース。または、ウィンドウ関数を使用して各行に数値を割り当てることができます。

SELECT ROW_NUMBER() OVER() 

これにより、各行に増分の整数値が割り当てられます。

あなたはエイリアス名でエイリアス列式を使用するために上記のクエリを使用することができます

SELECT SeasonName 
FROM (
    SELECT 
    CASE SeasonName 
     WHEN 'Summer' THEN 1 
     WHEN 'Winter' THEN 2 
     WHEN 'Spring' THEN 3 
     WHEN 'Fall' THEN 4 
    END AS SeasonNumber 
    FROM MyTable 
) src 

を更新しました。

+0

PerfectはSeasonNameの列名ですか?なぜなら、無効な列名がエラーになるからです。 – Tim1234

+0

ところで、はい。 SeasonNameは列式の別名です。クエリの別の部分でこのような派生列を参照する場合は、SELECTを別の外部SELECTにラップする必要があります。更新例を参照してください。 – ravioli

+0

パーフェクト、ラビオリありがとう。なぜかわからないけど、私のコラムの名前を変更しなければならないし、今それは働く:) – Tim1234

関連する問題