我仍在學習 SQL,我想知道是否有任何方法可以將變數設定為 all 而不是任何特定值。我想要類似的東西,它對我用于測驗目的很有用。我知道這就是它的作業原理。
DECLARE @sku AS VARCHAR(30)
SET @sku = 'ProductA'
無論如何我可以將變數內的值保持打開狀態。基本上是這樣的。
DECLARE @sku AS VARCHAR(30)
SET @sku = '%'
或者
DECLARE @sku AS VARCHAR(30)
SET @sku LIKE '%'
我不確定它在變數中是如何作業的。我試圖找到它,但找不到滿足我目的的東西。基本上,我不斷將特定值之間的變數值更改為 %。任何建議,將不勝感激。
添加:
DECLARE @sku AS VARCHAR(30) = '%'
DECLARE @name AS VARCHAR(40) = '%'
select * from table1
where sku = @sku
select * from table2
where sku = @sku
select * from table3
where name = @name
基本上在上面的示例查詢中,我必須注釋和取消注釋 3 個不同表中的 where 子句。有一種情況,我將 @sku 中的值放在頂部,我可以在 select 陳述句中使用 where 子句。出于測驗目的,我必須評論 where 陳述句,但為此我需要在 3 個不同的查詢中進行評論。無論如何,如果我可以將過濾器放在頂部而不是評論所有 3 個 where 子句。是否有意義?
uj5u.com熱心網友回復:
如果您的目標是為引數使用可選的“all”值,您可以這樣做:
DECLARE @sku nvarchar(100) = '%'; -- or any other token
...
WHERE @sku IN (field, '%')
計算結果為:如果@sku 是%,則條件始終為真并回傳所有行。
對于任何其他值,它只過濾field等于引數的行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343708.html
上一篇:在SQL服務器中累計超過N天
