我的数据列在数据库表中有空白。 我正在尝试这个:
select top 10
CHQNO,
ACCOUNT,
SURNAME,
OTHRNAME,
CHQAMT,
BANKNO,
PYMTNO,
GLACCTNO
from table1
where CHQAMT = ''
注意:CHQAMT列类型为十进制
并收到错误:Error converting data type varchar to numeric.
如何解决这个问题?
答案 0 :(得分:2)
如果CHQAMT是数字,你应该检查它是否为NULL(空白=''仅用于字符串)
html, body {
height: 100%;
}
div.card {
height: 100%;
}
#left-col {
height: 100%;
}
#right-col {
display: flex;
flex-direction: column;
height: 100%;
}
#right-card-container {
flex: 1;
}
#right-card-content {
height: 100%;
width: 100%;
background: red;
}
#right-bottom-element {
background: blue;
display: inline-block;
height: 100px;
width: 100%;
}
一些简单的测试:
<div class="row equal h-100">
<div id="left-col" class="col-md-4 pr-md-2">
<div class="card">
Left Card
</div>
</div>
<div id="right-col" class="col-md-8 pl-md-2">
<div id="right-card-container">
<div class="card">
<div class="card-header">Right Card</div>
<div class="card-block p-0">
<div id="right-card-content"></div>
</div>
</div>
</div>
<div id="right-bottom-element" class="mt-md-3">
Right Bottom Element
</div>
</div>
</div>
输出:
select top 10
CHQNO,
ACCOUNT,
SURNAME,
OTHRNAME,
CHQAMT,
BANKNO,
PYMTNO,
GLACCTNO
from table1
where CHQAMT IS NULL;
CREATE TABLE TEST1 (NUM INT, STRING VARCHAR(10));
INSERT INTO TEST1 VALUES (NULL, NULL);
INSERT INTO TEST1 VALUES (1, '');
INSERT INTO TEST1 VALUES (0, 'Zero');
SELECT * FROM TEST1 WHERE NUM IS NULL;
输出:
NUM STRING
1 NULL NULL
-----下一个(对于数据类型VARCHAR,在Oracle中会有不同的结果,但这不是你的情况)
SELECT * FROM TEST1 WHERE STRING IS NULL;
输出:
NUM STRING
1 NULL NULL
最后:
SELECT * FROM TEST1 WHERE STRING = '';
输出(无):实际上我认为它没有任何意义。
答案 1 :(得分:0)
如果您有数字列,则该值不能为空。您收到错误消息的原因&#34; Error converting data type varchar to numeric.
&#34;当你比较&#39;&#39;它试图转换字符串&#39;&#39;一个数字来做比较。
如果您要查找空值,则必须将查询更改为:
select top 10
CHQNO,
ACCOUNT,
SURNAME,
OTHRNAME,
CHQAMT,
BANKNO,
PYMTNO,
GLACCTNO
from table1
where CHQAMT is null
如果您确实在寻找空白,我怀疑情况不是这样,您需要将查询更改为:
select top 10
CHQNO,
ACCOUNT,
SURNAME,
OTHRNAME,
CHQAMT,
BANKNO,
PYMTNO,
GLACCTNO
from table1
where convert(varchar,CHQAMT) = ''
答案 2 :(得分:0)
您可以尝试这样检查......
select top 10
CHQNO,
ACCOUNT,
SURNAME,
OTHRNAME,
CHQAMT,
BANKNO,
PYMTNO,
GLACCTNO
from table1
where ( CHQAMT is null OR CONVERT(varchar,CHQAMT) = '' OR CONVERT(int, CHQAMT) = 0 )