case语句insql [英] case statement insql

查看:98
本文介绍了case语句insql的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 声明  @ AuditDBName   Varchar  50 ), @ sQuery   Varchar (最大)
< big> 选择 @ AuditDBName = ConfigStringValue FROM [dbo ]。[Common_SystemConfig] WHERE ConfigKey = ' CMS_AUDIT_DB'

- 这是我的数据库名称







< pre lang =sql> CASE WHEN EXISTS SELECT 1 FROM #TempClosedWorkItemReportTagIDForOMMAEvictionWB WHERE CaseNumber = CC.CaseNumber AND ReportTagID IN 160 ))
那么
选择 @sQuery = ' SELECT SUBSTRING((SELECT'',''+ s.CaseStatus FROM' + @ AuditDBName + ' 。[dbo]。[Audit_Common_Case]其中CaseNumber = CC.CaseNumber FOR XML PATH('''')),2,200000)' AS [CaseStatusToolTip]
END





我想通过我的下面的查询中的数据库名称

解决方案

你不能这样做:在SQL命令处理的早期阶段解析dB名称,它赢得了' t接受一个变量作为dB名称。

你可以这样做,但你需要组装一个字符串版本,然后用EXEC代替执行字符串。


Declare @AuditDBName Varchar(50),@sQuery Varchar(Max)
   <big> Select @AuditDBName = ConfigStringValue  FROM [dbo].[Common_SystemConfig]  WHERE ConfigKey= 'CMS_AUDIT_DB'

-- This is my db name



CASE WHEN EXISTS (SELECT 1 FROM #TempClosedWorkItemReportTagIDForOMMAEvictionWB WHERE CaseNumber = CC.CaseNumber AND ReportTagID IN (160))
                THEN
                    Select @sQuery='SELECT SUBSTRING((SELECT '','' + s.CaseStatus FROM '+@AuditDBName+'.[dbo].[Audit_Common_Case] s where CaseNumber=CC.CaseNumber FOR XML PATH('''')),2,200000)' AS [CaseStatusToolTip]
                END



I want to pass my db name in the below query

解决方案

You can't do it like that: the dB name is parsed at an earlier stage of SQL command processing, and it won't accept a variable as a dB name.
You can do it, but you need to assemble a string version and then use EXEC instead to execute the string.


这篇关于case语句insql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆