SQL条件选择
我想创建一个存储过程,指示应该选择哪些字段。比如我想把两个参数 selectField1”和“ selectField分别作为布尔值传递。
然后我想要类似的东西
SELECTif (selectField1 = true) Field1 ELSE do not select Field1if (selectField2 = true) Field2 ELSEdo not select Field2FROM Table谢谢卡尔
解决方案:
听起来他们只想返回允许字段的能力,这意味着返回字段的数量必须是动态的。这将使用两个变量。此外,任何其他事情都会变得令人困惑。
IF (selectField1 = true AND selectField2 = true)BEGIN SELECT Field1,Field2 FROM TableENDELSE IF (selectField1 = true)BEGIN SELECT Field1 FROM TableENDELSE IF (selectField2 = true)BEGIN SELECT Field2 FROM TableEND动态SQL帮助倍数。假设至少有一个例子是真的。
DECLARE @sql varchar(MAX)SET @sql = 'SELECT 'IF (selectField1 = true)BEGIN SET @sql = @sql 'Field1,'ENDIF (selectField2 = true)BEGIN SET @sql = @sql 'Field2,'END...-- DROP ','@sql = SUBSTRING(@sql,1,LEN(@sql)-2)SET @sql = @sql ' FROM Table'EXEC(@sql)
页:
[1]