希望这是一个快速
SELECT *
FROM T
left JOIN J ON
CASE
WHEN condition1 THEN 1 --prefer this option even if CASE2 has a value
WHEN condition2 THEN 2
ELSE 0
END = 1 (edit: but if 1 does not satisfy, then join on 2)
Run Code Online (Sandbox Code Playgroud)
两种情况都返回结果,但我希望 THEN 1 取代 THEN 2 并成为查找优先级
我可以让 SQL 做一些类似 join on 的事情max(CASE)吗?
基本上我试图从 Excel 复制嵌套的 INDEX/MATCH
编辑:我听到的是,案例应该在第一个返回的 TRUE 处停止,但是当我测试时它不会表现得那样
SELECT *
FROM T
left JOIN J ON
CASE
WHEN condition1 THEN 1 --prefer this …Run Code Online (Sandbox Code Playgroud) 我试图从数据集中选择不同的NAME,但也返回其他列.我有它在一定程度上工作,但只是无法弄清楚如何把它结合在一起.
我怀疑我需要一个WITH x(或者其他东西,但我不确定
这是CODE和它返回的数据的图像.从这里我想只显示WHERE RN=1在图像中以红色圈出的
显示
Select
row_number() over (partition by tagname order by adddate) as RN,
tagname,
RIGHT(v_AlarmsWithTagname.TagName,charindex('.',REVERSE(v_AlarmsWithTagname.TagName))-1) as SCADA_tag,
convert(varchar(12) , adddate , 101) as AddDate,
left(tagname,CHARINDEX('.',tagname)-1) as 'Table',
[CC_NOTE_LOG].dbo.SCADA_DB.groupid as 'Group',
[CC_NOTE_LOG].dbo.SCADA_DB.dataset as 'Dataset',
[CC_NOTE_LOG].dbo.SCADA_DB.Description as 'Description'
FROM "Buckeye KB".dbo.v_AlarmsWithTagname
join
[CC_NOTE_LOG].dbo.SCADA_DB
on
RIGHT(v_AlarmsWithTagname.TagName,charindex('.',REVERSE(v_AlarmsWithTagname.TagName))-1)=[CC_NOTE_LOG].dbo.SCADA_DB.SCADA_SR_TAG
where
[CC_NOTE_LOG].dbo.SCADA_DB.groupid<>'test' and
[CC_NOTE_LOG].dbo.SCADA_DB.groupid not like 'Keep%' and
[CC_NOTE_LOG].dbo.SCADA_DB.groupid not like 'delete%' and
Tagname not like '%.ES_%' and
Tagname not like '%.OPC_%'
Run Code Online (Sandbox Code Playgroud)

这是我的问题:
我正在尝试在SharePoint共享文档库中创建一个文件夹.但它只有在我使用"打开Windows资源管理器"菜单项输入我的凭据后才能工作.
我的用户不会理解,如果我告诉他们他们需要先做这件事.所以,我的问题是:(A)有没有办法从VBA强制这个凭证弹出或...(B)有没有办法通过VBA传递这些凭据
myWorkbookBasePath= "\\sharepoint.buckeye.com\sites\transportation\cc\pipelineoperationreports\Shared%20Documents\" & folder
MkDir myWorkbookBasePath
Run Code Online (Sandbox Code Playgroud)

sql-server ×2
case ×1
excel ×1
excel-vba ×1
join ×1
partition ×1
row-number ×1
sharepoint ×1
sql ×1
t-sql ×1
vba ×1