0

私はsqlとsql-serverを使用しています

ケースのあるビューに新しい列を作成しました。問題は次のとおりです。新しく作成された列にはデフォルトのデータ型があると思います。

私の質問は、新しい列を作成するときにそのデータ型をどのように定義するのですか? convert と cast を使ってみました。

 ALTER VIEW [dbo].[vtbl_dim_vb]
    AS
    SELECT    
      vb_key,ver_login,
      ver_name,
      ver_klass_descr,
      CAST(ver_klass AS varchar(40)) + ' ' + ver_klass_descr AS klass_descr_d,
      store_code,
      store_name,
      CASE WHEN LEFT(ver_klass, 1) = 'S' THEN ver_klass ELSE NULL END AS ver_sector,
      CASE WHEN LEFT(ver_klass, 1) = 'M' THEN ver_klass ELSE NULL END AS ver_metier,
      CASE WHEN LEFT(ver_klass, 1) <> 'S' AND LEFT(ver_klass, 1) <> 'M' THEN ver_klass ELSE NULL END AS ver_rayon
    FROM         
      dbo.tbl_dim_vb

cast コマンドを使用しようとしましたが、うまくいきませんでした:

  CAST ( expression AS data_type [ ( length ) ] )

3番目のケースにどのようなオプションがあるか知りたいです。

これは私が試したコードのようです:

CASE WHEN LEFT(ver_klass, 1) <> 'S' AND LEFT(ver_klass, 1) <> 'M' THEN ver_klass ELSE NULL END AS CAST ( ver_rayon AS int(10) )

新しく作成した列 ver_rayon を整数データ型にする必要があります。

アドバイスありがとうございます。)

4

1 に答える 1

1

多分このようなもの:

CAST(
(
  CASE 
  WHEN LEFT(ver_klass, 1) <> 'S' AND LEFT(ver_klass, 1) <> 'M' 
  THEN ver_klass 
  ELSE NULL 
  END
) AS INT)
AS ver_rayon
于 2012-04-20T06:56:13.947 に答える