首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IF语句检查SQL字符串中的数据。

问使用IF语句检查SQL字符串中的数据。
EN

Stack Overflow用户
提问于 2014-12-15 09:28:03
回答 3查看 165关注 0票数 0

我有一个带有SQL语句的Oracle连接字符串:

代码语言:javascript
复制
OracleCommand cmd = new OracleCommand("SELECT * FROM Database WHERE IPADDRESS='10.00.000.000' ORDER BY DATETIME ASC", con);

在将所有数据加载到数据集中之后,我将检查行"RAWOUTPUT1“的位,并将其写入正确的列:

代码语言:javascript
复制
int bit = Convert.ToInt32(dr[22]);

dr[24] = (bit & (1 << 0)) != 0;
dr[25] = (bit & (1 << 1)) != 0;
dr[26] = (bit & (1 << 2)) != 0;
dr[27] = (bit & (1 << 3)) != 0;
dr[28] = (bit & (1 << 4)) != 0;
dr[29] = (bit & (1 << 5)) != 0;
dr[30] = (bit & (1 << 6)) != 0;
dr[31] = (bit & (1 << 7)) != 0;
dr[32] = (bit & (1 << 8)) != 0;
dr[33] = (bit & (1 << 9)) != 0;

我现在的问题是数据太大了,我得到了一个内存异常。所以我的想法是只从我需要的数据库中加载数据,如下所示:

代码语言:javascript
复制
OracleCommand cmd = new OracleCommand("SELECT * FROM Database WHERE IPADDRESS='10.00.000.000' 
AND IF((RAWOUTPUT1 & (1 << 0)) != 0) //here I need help, example for check bit
ORDER BY DATETIME ASC", con);

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-15 09:44:49

你找什么呢?所有记录,在RAWOUTPUT1中至少设置一个位?

代码语言:javascript
复制
AND RAWOUTPUT1 <> 0

或者所有的记录所有给定的10位都被设置了?

代码语言:javascript
复制
AND RAWOUTPUT1 = 1023

或者十位中至少有一位是在哪里设置的?

代码语言:javascript
复制
AND BITAND(RAWOUTPUT1, 1023) > 0

编辑:如果你正在寻找一个特定的位,那么比特和与之相对应的力量是2:

代码语言:javascript
复制
AND BITAND( RAWOUTPUT1, POWER(2,:n-1) ) <> 0
票数 1
EN

Stack Overflow用户

发布于 2014-12-15 09:39:20

票数 2
EN

Stack Overflow用户

发布于 2014-12-15 09:53:04

我对Oracle数据库没有多少经验,但我认为IF条件不能在WHERE子句中以这种方式使用。筛选您的行,将条件设置为如下所示:

代码语言:javascript
复制
AND BITAND(RAWOUTPUT1, 1) <> 0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27480884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档