SQL筛选器选择语句
我需要过滤我的select语句,只获取一个值,一个位值为true。比如说SQL筛选器选择语句,sql,sql-server,tsql,case,Sql,Sql Server,Tsql,Case,我需要过滤我的select语句,只获取一个值,一个位值为true。比如说 DECLARE @Value AS NVARCHAR(20) = 'Some Value' @BIT AS BIT = 1, @Stuff AS NVARCHAR(20) = 'Stuff' SELECT @Stuff, IF @BIT = 1 BEGIN @Value END ELSE BEGIN '' END 基本上是这样的。我只想在值为true时选择该值。我有多个复选框,只有当用户
DECLARE
@Value AS NVARCHAR(20) = 'Some Value'
@BIT AS BIT = 1,
@Stuff AS NVARCHAR(20) = 'Stuff'
SELECT
@Stuff,
IF @BIT = 1 BEGIN @Value END ELSE BEGIN '' END
基本上是这样的。我只想在值为true时选择该值。我有多个复选框,只有当用户选择其中一个复选框时,数据才应该拉回数据,所以我使用位来跟踪它是否被选中。提前感谢使用
案例
不如果
:
SELECT
@Stuff,
CASE WHEN @BIT = 1 THEN @Value ELSE '' END
或
现在有点不清楚您想做什么,因此我将向您介绍几种方法: 如果要限制select语句,可以执行以下操作:
SELECT ...
FROM ...
WHERE myBitField = 1
SELECT ...
FROM ...
WHERE myBitField = @BIT
或者,如果您的位字段是传入的变量,则可以执行以下操作:
SELECT ...
FROM ...
WHERE myBitField = 1
SELECT ...
FROM ...
WHERE myBitField = @BIT
如果不想限制select结果,可以使用case语句:
SELECT CASE WHEN @BIT = 1 THEN @Value ELSE '' END as BitResult
FROM ...
无论应用程序是否有这些复选框,代码都比查询更好地处理这个问题。谢谢Alex,在这种情况下应该可以这样做。我正在使用这些数据构建一个报告,因此,如果有一个无名列,它应该忽略它。