在以下查询中,t2.stock它有两个值(1和0).我希望1值输出为IN和0值为OUT.问题是我不能CASE在这种类型的查询中使用表达式.有没有办法做到这一点?
use DB1
go
declare @SQL varchar(500),
Set @SQL=' select t1.ID,t1.Name,t2.stock
from table1 t1
inner join table2 t2 on t1.ID = t2.ID'
exec (@SQL)
Run Code Online (Sandbox Code Playgroud)
如果通过这种类型的查询,您意味着动态查询,那么您可能对动词CASE查询和/或动态查询有一些误解.通常,CASE在动态查询中使用表达式是没有问题的,其中一个例子可以在@Gordon Linoff的答案中看到.
但是,如果你绝对坚持,还有就是在您的情况一种替代方案:
use DB1
go
declare @SQL varchar(500);
Set @SQL=' select t1.ID, t1.Name, v.description as stock
from table1 t1
inner join table2 t2 on t1.ID = t2.ID
inner join (
values (1, ''IN''),
(0, ''OUT'')
) t2 (stock, description) on t2.stock = v.stock
';
exec (@SQL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1055 次 |
| 最近记录: |