Я хотел бы получить все записи (6 строк) от testTable
, если a = 4
. 4
- параметр по умолчанию в SP.Выражение случая в том, где статья
create table testTable(a int, b int, c int)
go
insert into testTable values(2, 101, 100000)
go
insert into testTable values(2, 101, 100001)
go
insert into testTable values(3, 101, 100002)
go
insert into testTable values(3, 102, 100003)
go
insert into testTable values(4, 1, 100004)
go
insert into testTable values(4, 1, 100005)
go
create proc SPtest
@a int = 4,
@b int = 1
as
select * from testTable where a = @a and b = @b
exec SPtest 2, 101
Над работой хорошо. но мне нужно что-то вроде этого:
declare @a int
set @a = 4
select *
from testTable
where a = case @a when 4 then select distinct a from testTable end
'CASE' в SQL Server может возвращать только "атомные" значения - вы не можете запустить код T-SQL внутри' CASE' заявление. Вам нужно будет прочитать эти различные значения из таблицы и сохранить их в переменной ** перед ** выполнением этого выбора с помощью случая в предложении where –