【发布时间】:2021-10-29 19:00:10
【问题描述】:
我仍在学习 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 子句的话。有意义吗?
【问题讨论】:
-
你想怎么用这个?
-
你的最终目标是什么?您是否正在尝试基于变量值执行 Begins With 或 Ends With 匹配?
-
基本上我的目标是,将变量设置为 % 以显示所有变量。它在 where 子句中的工作方式。例如,其中 sku 喜欢 '%'。我可以在变量中做这样的事情吗?
-
“显示所有变量”是什么意思?作为
SELECT返回您拥有DECLAREDd 的所有变量?