sql 查询条件判断

孤独岛 2022-08-06 11:02:13

列A  列 B

aa     bb

bb    cc

cc   dd

有这么一个表,如果我查 bb ,先从B列开始查询 如果查询不到就从A列查询。这样的sql查询语句怎么写

...全文
51 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
morliz子轩 5天前

demo:

declare minId int,
      @maxId int,
     @count int

--变量体(列名A、B)的值
declare @colA nvarchar(20),
    @colB nvarchar(20)

--首先逐行遍历表数据
select @count = count(*), minId = min(id), max(Id) from [表名]
while (@min is not null and @minId <= @maxId)
begin
--获取每行的A值和B值
select @colA = [列名A], @colB = [列名B] from [表名] where Id = @minId
--判断B列值是否为空
if isnull(@colB,'') !=''
begin
//do someting ....
end

if isnull(@colB,'') ='' and isnull(@colA,'') !=''
begin
//do someting ....
end

set @minId = @minId + 1

end

  • 打赏
  • 举报
回复
吉普赛的歌 版主 7天前

select * from t where 列B =‘bb’ or 列A='bb'

  • 打赏
  • 举报
回复
孤独岛 7天前
@吉普赛的歌 这样的话,如果B列有,A列也有 ,结果都会查询出来,我的意思,如果B列有 就不再查询A列。
  • 举报
回复
吉普赛的歌 版主 7天前
@孤独岛 你的说法本身就有问题。 因为最开始就是查B列,无论A有没有。 除非你要完全排除B列和A列 都有的情况,我的写法才是错的。
  • 举报
回复
展开其他3条回复
发帖
MS-SQL Server

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2022-08-06 11:02
社区公告
暂无公告