17回答

0收藏

SQL条件选择

技术问答 技术问答 791 人阅读 | 17 人回复 | 2022-03-03

我想创建一个存储过程,指示应该选择哪些字段。
& `% q% y* B& m! o" v+ Y& Q比如我想把两个参数 selectField1”和“ selectField分别作为布尔值传递。
' a* {3 G, y( d+ }然后我想要类似的东西: f! @% |4 D) t1 q2 O0 W
SELECTif (selectField1 = true) Field1 ELSE do not select Field1if (selectField2 = true) Field2 ELSE  do not select Field2FROM Table谢谢卡尔
: I3 u- R- e, e5 x+ G" {* H                                                                + H9 I! ?5 ?, C+ v
    解决方案:                                                                7 N' f: B! F5 Y' f) Z2 C2 d
                                                                听起来他们只想返回允许字段的能力,这意味着返回字段的数量必须是动态的。这将使用两个变量。此外,任何其他事情都会变得令人困惑。
2 b: g7 R! |+ i3 R" w- A+ I& G; @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帮助倍数。假设至少有一个例子是真的。0 I5 ^7 [% H% [* u  Q+ ^
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)
分享到:
回复

使用道具 举报

回答|共 17 个

电脑王子

发表于 2022-3-3 22:49:18 | 显示全部楼层

我也来顶一下..
回复

使用道具 举报

网购

发表于 2022-3-5 13:00:52 | 显示全部楼层

这么强,支持楼主,佩服
回复

使用道具 举报

周游四海

发表于 2022-3-6 12:48:05 | 显示全部楼层

前排支持下
回复

使用道具 举报

陈德红

发表于 2022-3-7 07:56:40 | 显示全部楼层

站位支持
回复

使用道具 举报

张小青

发表于 2022-3-8 03:52:35 | 显示全部楼层

啥玩应呀
回复

使用道具 举报

滴滴滴

发表于 2022-3-8 15:02:01 | 显示全部楼层

这么强,支持楼主,佩服
回复

使用道具 举报

心随海

发表于 2022-3-8 23:11:09 | 显示全部楼层

very good
回复

使用道具 举报

心动欧巴

发表于 2022-3-9 04:52:55 | 显示全部楼层

我也是坐沙发的
回复

使用道具 举报

火锅烧烤吃不够啤酒得管够

发表于 2022-3-9 10:22:08 | 显示全部楼层

支持你哈...................................
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

29055 积分
9659 主题
热门推荐