如何在 T-SQL 中将变量设置为 all?

How to set variable to all in T-SQL?

我还在学习 SQL 我想知道是否有任何方法可以将变量设置为全部而不是任何特定值。我想要一些对我测试有用的东西。我知道这是怎么回事。

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 子句。有道理吗?

如果您的目标是为参数使用可选的“全部”值,您可以这样做:

DECLARE @sku nvarchar(100) = '%'; -- or any other token

...
WHERE @sku IN (field, '%')

计算结果为:如果@sku 为 %,则条件始终为真且 returns 所有行。
对于任何其他值,它仅过滤 field 等于参数的行。