从'Y'或'N'转换为bit

时间:2010-03-27 16:06:29

标签: sql-server-2005 tsql

我有一个表有一个名为Direct的char(1)类型的列。它的值是'Y'或'N'或NULL。我正在创建一个视图,我希望将值转换为0或1类型的位。现在它是INT类型。我该怎么做呢?

以下是代码:

CASE WHEN Direct = 'Y' THEN (SELECT 1)
WHEN Direct <> 'Y' THEN (SELECT 0) END AS DirectDebit

编辑:如何确保列类型为BIT类型?

3 个答案:

答案 0 :(得分:7)

这会让你有点......

CAST(CASE WHEN Direct = 'Y' THEN 1 ELSE 0 END AS BIT) AS DirectDebit

答案 1 :(得分:4)

看看是否有效:

SELECT CASE WHEN Direct = 'Y' THEN 1 ELSE 0 END FROM YOURTABLE

答案 2 :(得分:1)

SELECT CASE Direct
WHEN 'Y' THEN '1' 
WHEN 'N' THEN '0' 
ELSE '0'
END as DirectDebit
FROM TableName

......应该有用。