我想從這些條件的表中檢索一些列值。如果列值爲NULL,如何實現默認值?
- 如果值是NULL(或)空字符串,返回一些用戶定義的值
- 如果沒有上述條件下,返回它的值。
我該怎麼弄出來?
這裏是我的表查詢..
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;
這是我efforted碼得到它..
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;
但我總是得到空字符串值(不是-1)如果給出id不在我的桌子上。
任何建議將非常感激!
COALESCE()???? – Strawberry
您是否嘗試過:'CASE WHEN(price is NULL or price ='') –
@Strawberry我已經用ifnull進行測試,合併,爲空,如果爲空。但仍然麻煩或可能是我錯了。 – Cataclysm