如何在sql查询中编码位文字

时间:2015-12-09 18:20:45

标签: sql sql-server

我有一个联合多个表的视图。一个表有一个名为VisibleToCustomer的位列。其中一个表没有这个,我想在视图中对其进行硬编码。我可以用字符串来做到这一点: -

SELECT  'Fred' "VisibleToCustomer", ....

甚至是ints

SELECT  1 "VisibleToCustomer", ....

但我该如何做呢?即我想做像

这样的事情
SELECT  true "VisibleToCustomer", ....

但显然上述情况并不奏效!

2 个答案:

答案 0 :(得分:4)

您可以使用

 SELECT  'true' AS "VisibleToCustomer"

比{var}有higher data type precedence所以这将正确投射。

SELECT CAST(1 AS BIT) AS "VisibleToCustomer"
UNION ALL
SELECT 'false' 

返回

+-------------------+
| VisibleToCustomer |
+-------------------+
|                 1 |
|                 0 |
+-------------------+

答案 1 :(得分:3)

位文字的三个可能值: select cast(1 as bit), cast(0 as bit), cast(null as bit)

注意:当转换为位1时,任何非零值都将变为CAST(-1.2e-33 AS BIT)。我建议不要那样写一些文字。