簡體   English   中英

sql查詢如果參數為null則選擇全部

[英]sql query if parameter is null select all

我有以下查詢:

SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = ?;

現在我想要那個'?' 為NULL,必須選擇所有記錄。 我怎樣才能在SQL中實現這一點? 謝謝

嘗試這個:

SELECT * 
FROM MY_TABLE 
WHERE @parameter IS NULL OR NAME = @parameter;

您還可以使用函數IFNULLCOALESCENVLISNULL來檢查空值。 這取決於您的RDBMS。

MySQL

SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = IFNULL(?,NAME);

要么

SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = COALESCE(?,NAME);

ORACLE

SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = NVL(?,NAME);

SQL Server / SYBASE

SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = ISNULL(?,NAME);
SELECT NAME
FROM MY_TABLE
WHERE NAME LIKE CASE WHEN ? IS NOT NULL THEN ? ELSE '%' END

這將完美地工作,但它將僅返回非空值。

這個人。 查詢將處理Name(表列值)也可以為NULL的情況:

SELECT NAME, SURNAME FROM MY_TABLE WHERE COALESCE(NAME,'') = COALESCE(?,NAME,'');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM