sql查询后如何输出符合的字段

gitbyte 2017-08-23 11:47:36
问各位大神一个问题
SELECT * FROM ABC where a>1 or b>1 or c>1 or d>1
如果这样查询的结果。有办法能知道是哪个字段符合或者能不能输出符合条件的那个字段名?

...全文
386 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2017-08-24
  • 打赏
  • 举报
回复
这样?
--测试数据
if not object_id(N'Tempdb..#ABC') is null
drop table #ABC
Go
Create table #ABC([a] int,[b] int,[c] int,[d] int)
Insert #ABC
select 0,1,0,2 union all
select 1,2,0,3 union all
select 0,0,6,1
Go
--测试数据结束
SELECT CASE WHEN a > 1 THEN 'a'
ELSE ''
END AS 符合条件字段1 ,
CASE WHEN b > 1 THEN 'b'
ELSE ''
END AS 符合条件字段2 ,
CASE WHEN c > 1 THEN 'c'
ELSE ''
END AS 符合条件字段3 ,
CASE WHEN d > 1 THEN 'd'
ELSE ''
END AS 符合条件字段4
FROM #ABC
WHERE a > 1
OR b > 1
OR c > 1
OR d > 1


RINK_1 2017-08-24
  • 打赏
  • 举报
回复
要么你试试动态语句,类似于下面的。 DECLARE @SQL NVARCHAR(MAX) SELECT @SQL=ISNULL(@SQL+' UNION ALL ','')+'SELECT '+name+','''+name+''' AS COLUMN_NAME FROM TEST WHERE '+name+'>1' FROM SYSCOLUMNS WHERE ID=OBJECT_ID(N'TEST') EXEC(@SQL)
道素 2017-08-24
  • 打赏
  • 举报
回复
不知道你想要什么样的输出格式,下面仅供参考

;with abc (ID,a,b,c,d) AS (
   select 1,0.3,1,0.4 ,2 union all
   select 2,2,0.1,0.5 ,2 union all
   select 3,0.3,1,0.4 ,0.2 union all
   select 4,0.3,2,0.4 ,2 union all
   select 5,3,1,4,2
 )
select * from abc
cross apply(values('a',a),('b',b),('c',c),('d',d))c(col,val)
where c.val<1

+----+-----+-----+-----+-----+-----+-----+
| ID | a   | b   | c   | d   | col | val |
+----+-----+-----+-----+-----+-----+-----+
| 1  | 0.3 | 1   | 0.4 | 2   | a   | 0.3 |
| 1  | 0.3 | 1   | 0.4 | 2   | c   | 0.4 |
| 2  | 2   | 0.1 | 0.5 | 2   | b   | 0.1 |
| 2  | 2   | 0.1 | 0.5 | 2   | c   | 0.5 |
| 3  | 0.3 | 1   | 0.4 | 0.2 | a   | 0.3 |
| 3  | 0.3 | 1   | 0.4 | 0.2 | c   | 0.4 |
| 3  | 0.3 | 1   | 0.4 | 0.2 | d   | 0.2 |
| 4  | 0.3 | 2   | 0.4 | 2   | a   | 0.3 |
| 4  | 0.3 | 2   | 0.4 | 2   | c   | 0.4 |
+----+-----+-----+-----+-----+-----+-----+
gitbyte 2017-08-24
  • 打赏
  • 举报
回复
多谢两位。不过这样就还得自己写判断。。 我以为有什么语句可以直接输出的。。 我是用VB来远程调用执行的。那我得自己写判断。。。 因为一共有11个字段。都是日期型。判断某个日期超出当前日期就输出。 那结果还得判断一次11个字段哪个超出输出真。 不相同输出假。。 看来没有捷径。。。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧