declare @sql nvarchar(2000)
select @sql = case when @bz = 'y' then 'SELECT @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1'
when @bz = 'n' then 'SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2
when @bz = 'a' then 'SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2 union all select @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1'
else ''
end
if @sql <> ''
exec(@sql)
select @sql = case when @bz = 'y' then 'SELECT @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1'
when @bz = 'n' then 'SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2
when @bz = 'a' then 'SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2 union all select @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1'
else ''
end
if @sql <> ''
exec(@sql)
解决方案 »
- 这个不会写啊 求一个sql语句
- 如何设计某个字段多内容的表?
- 排序
- 一个查询的问题
- 一个xml查询的问题 有点麻烦
- 用log explorer 查看ms sql server 2005日志 发现数值的变化不连贯是什么情况引起的呢?
- 安装sql server2000,提示“以前的某个程序安装已经在计算机上创建挂起的文件操作,必须重启计算机"
- 要从informix转到ms-sql,以前的代码都是c的(ec for informix),ms-sql有c接口么?
- 如何根据一个表中是否存在符合调价记录为另外一个表的查询结果创建一个动态字段
- 能不能在MySQL已安装成功的情况下,再装SQL Server 2005?(这类问题,是不是叫做并行安装问题?)
- 数据库连接~
- 在线等,请助,SQL唯一值的问题?
没见过...
if @BZ=N SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2
if @BZ=A
SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2 union all
SELECT @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1
happyflystone(仙林幽谷客)
那个就行了/。
只能是这样的结果:
A 2 ABC
A 5 KDG
A 1 GF
A 5 GFGG应该是这样:
Y 2 ABC
Y 5 KDG
N 1 GF
N 5 GFGG
当满足@BZ='N'时查出的结果,应设BZ字段为'N'。具体到这个例子,就是从A表中查出的结果,设标志位BZ为'Y',
从B表中查出的结果,设标志位BZ为'N',有办法吗?
select @sql = case when @bz = 'y' then 'SELECT @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1'
when @bz = 'n' then 'SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2
when @bz = 'a' then 'SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2 union all select @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1'
else ''
end
if @sql <> ''
exec(@sql)
我认为是对的
在sql里是有这个语法的如果你不看好可以用if 呀
declare @sql nvarchar(2000)
if @sql='Y'
SELECT @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1
if @sql='N'
SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2
if @sql='a'
SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件1 or 条件2
set @BZ=upper(@bz)
if @BZ='Y'
SELECT @BZ AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1
if @sql='N'
SELECT @BZ AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2
if @sql='A'
SELECT 'Y' AS BZ, A.ID AS ID, A.A1 AS F FORM A WHERE 条件1
union all
SELECT 'N' AS BZ, B.ID AS ID, B.B1 AS F FORM B WHERE 条件2--------------------------------------------------
这样就足够啦