我有一个表有一个名为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类型?
答案 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
......应该有用。