在 SELECT 陳述式中使用 MySQL 的 IF() 函式進行條件列值調整
MySQL 的 SELECT
語句檢索資料。 有時,您需要根據同一行中的其他列有條件地修改列的輸出。 IF()
函數可以促進這一點。
場景:
假設我們有一個 report
表,需要根據 amount
列運算 type
列的符號。 如果type
是'P',amount
應該是正數;如果是“N”,則應為負數。
初步查詢:
<code class="language-sql">SELECT id, amount FROM report;</code>
有條件修改:
以下是如何使用IF()
來實現所需的條件調整:
<code class="language-sql">SELECT id, IF(type = 'P', amount, amount * -1) AS amount FROM report;</code>
說明:
IF()
函數採用三個參數:
condition
:要評估的條件 (type = 'P'
)。 true_value
:條件為真時傳回的值 (amount
)。 false_value
:條件為假時回傳的值 (amount * -1
)。 AS amount
將 IF()
函數的結果指定為輸出的別名 amount
。
處理 NULL 值:
如果 amount
可能是 NULL
,請使用 IFNULL()
進行穩健處理:
<code class="language-sql">SELECT id, IF(type = 'P', IFNULL(amount, 0), IFNULL(amount, 0) * -1) AS amount FROM report;</code>
IFNULL()
有兩個參數:
value
:要檢查 NULL
的值 (amount
)。 default_value
:如果 value
為 NULL
(0),則傳回值。 進一步閱讀:
更多MySQL串流功能請參考官方文件:https://www.php.cn/link/0cfe3c931a81acba365b335768dd0d93
以上是如何使用 MySQL 的 IF() 函數有條件地調整 SELECT 陳述式中的列值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!