如何更改视图中新创建的列的数据类型? SQL

时间:2012-04-20 06:49:36

标签: sql sql-server

我正在使用sql和sql-server

我在一个包含案例的视图中创建了一个新列。问题如下:我认为新创建的列具有默认数据类型。

我的问题是如何在创建新列时定义新列的数据类型?我尝试过使用转换和转换。

 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 ) ] )

我想知道我对第三种情况有什么选择。

这就是我尝试的代码的样子:

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为整数数据类型。

非常感谢任何建议; )

1 个答案:

答案 0 :(得分: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