如何在SQL查询中使用大小写 [英] How to use case in SQL query
本文介绍了如何在SQL查询中使用大小写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个名为varchar(20)的表测试,id int&性别char(1)columns。我想用性别写条件。
如果性别= 0则显示所有性别细节
性别= 1然后男性
性别= 2然后女性
此查询未显示任何细节..任何人都可以给出建议。 />
谢谢。
我尝试过:
选择名称,性别来自 test 其中 案例 何时 @Gender = 0 然后 1 其他 a.Gender end = case 当 @ Gender = 0 然后 1 else @ Gender end
解决方案
不要在WHILE中使用CASE,请使用AND和OR代替。假设a.Gender对男性为1,女性为2,请尝试:
... WHERE @ Gender = 0 或 @ GENDER = a.Gender
这很简单。尝试以下查询。 (我不太明白当性别= 0时你想要显示什么。所以在我的查询中,当性别为0时我显示空白。)
选择名称,
案例 当 gender = ' 0' 然后 ' '
何时 gender = ' 1' 然后 ' male'
何时 gender = ' 2' 然后 ' female' end as gender
来自 test
< blockquote>声明@Gender int
选择姓名,性别,@Gender = 0时的情况
然后(选择*来自测试>
其中性别('男','女'))
当@Gender = 1然后(选择*来自测试
,其中性别='男性')
当@Gender = 2然后(选择*来自测试
,其中性别='女性')
结束
$来自test的b $ b
I have a table test with name varchar(20),id int & gender char(1) columns.I want to write the condition using gender.
If gender=0 then show all gender details
gender=1 then male
gender=2 then female
This query is not showing any detail..can any one give suggestion.
Thank you.
What I have tried:
select name,gender from test where case when @Gender=0 then 1 else a.Gender end =case when @Gender=0 then 1 else @Gender end
解决方案
Don't use CASE in a WHILE, use AND and OR instead. Assuming a.Gender is also 1 for male and 2 for female, try:
... WHERE @Gender = 0 OR @GENDER = a.Gender
This is simple. Try following query. (I don't really understand what you want to display when the gender = 0. So in my query I display blank when gender is 0)
select name, case when gender = '0' then '' when gender = '1' then 'male' when gender = '2' then 'female' end as gender from test
declare @Gender int
select name,gender, case when @Gender = 0
then (select * from test
where Gender in ('Male','Female') )
when @Gender = 1 then (select * from test
where Gender = 'Male')
when @Gender = 2 then (select * from test
where Gender = 'Female')
end
from test
这篇关于如何在SQL查询中使用大小写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文