mysql C 如果列值为NULL,如何实现默认值?
发布时间:2023-12-14 13:48:34 所属栏目:MySql 来源:DaWei
导读: 我想从这些条件中检索表中的一些列值.
>如果value为NULL(或)Empty String,则返回一些用户定义的值
>如果不是上述条件,则返回其值.
我怎么能搞清楚?
这是我的表查询..
CREATE TABLE AUCTI
>如果value为NULL(或)Empty String,则返回一些用户定义的值
>如果不是上述条件,则返回其值.
我怎么能搞清楚?
这是我的表查询..
CREATE TABLE AUCTI
我想从这些条件中检索表中的一些列值. >如果value为NULL(或)Empty String,则返回一些用户定义的值 我怎么能搞清楚? 这是我的表查询.. CREATE TABLE AUCTION_CAR_BID( bid_seq bigint NOT NULL AUTO_INCREMENT,auction_car_seq bigint NOT NULL,bid_group_seq bigint NOT NULL,bid_price int DEFAULT 0 NOT NULL,over_bid_price int DEFAULT -1 NOT NULL,result_id int DEFAULT 0 NOT NULL,remark varchar(500),PRIMARY KEY (bid_seq)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8;这是我努力的代码来获得它.. SELECT COALESCE(OVER_BID_PRICE,-1) FROM AUCTION_CAR_BID WHERE BID_SEQ = 2354435345;另一个: SELECT CASE WHEN OVER_BID_PRICE IS NULL OR TRIM(OVER_BID_PRICE) = '' THEN -1 ELSE OVER_BID_PRICE END OVER_BID_PRICE FROM AUCTION_CAR_BID WHERE BID_SEQ = 2354435345;但是如果给定的id不在我的表中,我总是得到空的String值(不是-1). 任何建议将非常感谢! 最佳答案 如果你这样写: SELECT COALESCE(OVER_BID_PRICE,-1) FROM AUCTION_CAR_BID WHERE BID_SEQ = 2354435345;结果可以是两种类型. 第一个结果:您的查询没有返回行!您的WHERE条件不令人满意,因此您将读取NULL 第二个结果:您的查询返回行但您的字段值为NULL,在这种情况下您的COALESCE工作正常 要解决你可以尝试这个: SELECT COALESCE( (SELECT COALESCE(OVER_BID_PRICE,-1) FROM AUCTION_CAR_BID WHERE BID_SEQ = 2354435345),-1);告诉我它是否正常 (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐