使用bitand的SQL Server视图或过程

时间:2014-12-15 13:56:49

标签: sql sql-server

我有一个包含此数据的SQL Server数据库(示例行):

IP      | DATETIME            | TOTALTIME1 | OUTPUT | 
-----------------------------------------------------
x.x.x.x | 30.10.2014 11:23:39 |     123    |    3   |

我想将数据加载到c#数据集中,但是有太多条目,所以我寻找一个解决方案来只加载我需要的数据,并且处理需要数据库本身。

我需要的是一个视图或我可以在c#中使用所选和处理数据的视图:

ID1ID2是新列

IP | DATETIME | TOTALTIME1 | OUTPUT | ID1 | ID2 |

现在我必须检查行的位" OUTPUT",如果第一位= 1,那么在行" ID1"应该是" true"。像这样:

BITAND(OUTPUT, 1) <> 0 THEN ID1 = "TRUE"

那我该怎么做呢?是否可以创建新视图或我需要一个程序? 我想用SQL Server在c#中加载视图/过程的数据。

谢谢!

解决方案

CASE BITAND(RAWOUTPUT1, POWER(2,n-1)) WHEN 0 THEN 'FALSE' ELSE 'TRUE' END AS ID1

1 个答案:

答案 0 :(得分:1)

SQL Server中有许多按位运算符。请参阅此处的文档:http://msdn.microsoft.com/en-gb/library/ms176122.aspx

你需要的是这样的东西:

SELECT CASE (OutputColumn & 1) WHEN 0 THEN 'FALSE' ELSE 'TRUE' END AS ID1,
       CASE (OutputColumn & 2) WHEN 0 THEN 'FALSE' ELSE 'TRUE' END AS ID2,
       * -- Other columns here, etc.