有没有办法在SQL中有条件地打印列?让我们说Select FirstName, LastName, RollNumber, Subject, Marks From Student
给出了5柱FirstName, LastName, RollNumber, Subject, Marks
的输出。它也接受一个参数@NameType
。如果@NameType = 'First'
然后输出应该只有FirstName, RollNumber, Subject, Marks
。同样,如果@NameType = 'Second'
然后输出应该只有SecondName, RollNumber, Subject, Marks
排除列FirstName
。如何实现这一目标?
Declare @NameType nvarchar(max);
Set @NameType='First'
Select FirstName, LastName, RollNumber, Subject, Marks From Student
DECLARE @NameType VARCHAR(10)
SET @NameType = 'First';
SELECT CASE WHEN @NameType = 'First' THEN FirstName
WHEN @NameType = 'Second' THEN LastName END as [Name]
,RollNumber
,Subject
,Marks
FROM Student;
听起来像你的追随者:
DECLARE @NameType varchar(6); --no reason to be a `MAX`, Second is only 6 characters long,
--and it doesn't need to be an nvarchar, as neither string contains unicode characters
SET @NameType = 'First';
SELECT CASE @NameType WHEN 'First' THEN FirstName
WHEN 'Second' THEN LastName
END AS [Name],
RollNumber,
Subject,
Marks
FROM Student;
select
case when @NameType = 'First' then FirstName
when @NameType = 'Second' then SecondName end ColName,
RollNumber, Subject, Marks From Student