Sql 无法在其中添加别名的解决方案
我知道在SQL server中,不能在WHERE子句中使用别名作为列名。虽然我目前使用的过滤器似乎不起作用,但我已多次尝试按扩展名(仅LDF和MDF)过滤文件,但都不起作用。下面是我所拥有的,我想知道是否有人知道实现这一点的方法 我希望输出集中的所有行在FileType列中具有LDF或MDF 这是我试过的Sql 无法在其中添加别名的解决方案,sql,sql-server,tsql,Sql,Sql Server,Tsql,我知道在SQL server中,不能在WHERE子句中使用别名作为列名。虽然我目前使用的过滤器似乎不起作用,但我已多次尝试按扩展名(仅LDF和MDF)过滤文件,但都不起作用。下面是我所拥有的,我想知道是否有人知道实现这一点的方法 我希望输出集中的所有行在FileType列中具有LDF或MDF 这是我试过的 SELECT DISTINCT CWV.SystemName , CIL.CIL_INSTANCE_NAME AS [Instance Name] ,
SELECT DISTINCT
CWV.SystemName ,
CIL.CIL_INSTANCE_NAME AS [Instance Name] ,
CWV.DriveLetter ,
UPPER(RIGHT(CIDFP.physical_name, 3)) AS FileType ,
CIDFP.physical_name AS [Physical Name]
FROM CCS_InstanceDatabaseFilesProperty AS CIDFP
INNER JOIN CCS_INSTANCE_LIST AS CIL ON CIL.CIL_ID = CIDFP.CIL_ID
INNER JOIN CCS_InstanceServerProperty AS CSP ON CSP.CIL_ID = CIDFP.CIL_ID
LEFT OUTER JOIN CCS_Win32_Volume AS CWV ON CIL.CSL_ID = CWV.CSL_ID
AND LEFT(CIDFP.physical_name,
2) = CWV.DriveLetter
WHERE ( CWV.SystemName IS NOT NULL )
AND ( CWV.DriveLetter IS NOT NULL )
OR RIGHT(CIDFP.physical_name, 3) = 'mdf'
OR RIGHT(CIDFP.physical_name, 3) = 'ldf'
提前感谢您的任何输入/回答。将WHERE子句更改为:
WHERE ( CWV.SystemName IS NOT NULL )
AND ( CWV.DriveLetter IS NOT NULL )
AND (RIGHT(CIDFP.physical_name, 3) = 'mdf'
OR RIGHT(CIDFP.physical_name, 3) = 'ldf')
将WHERE子句更改为:
WHERE ( CWV.SystemName IS NOT NULL )
AND ( CWV.DriveLetter IS NOT NULL )
AND (RIGHT(CIDFP.physical_name, 3) = 'mdf'
OR RIGHT(CIDFP.physical_name, 3) = 'ldf')
您的
和
/或
逻辑未正确分组
如果您希望DriveLetter不为null和物理名称='mdf'或或'ldf',您可以这样更改它:
WHERE CWV.SystemName IS NOT NULL
AND CWV.DriveLetter IS NOT NULL
AND RIGHT(CIDFP.physical_name, 3) in ('mdf', 'ldf')
您的和
/或
逻辑未正确分组
如果您希望DriveLetter不为null和物理名称='mdf'或或'ldf',您可以这样更改它:
WHERE CWV.SystemName IS NOT NULL
AND CWV.DriveLetter IS NOT NULL
AND RIGHT(CIDFP.physical_name, 3) in ('mdf', 'ldf')
不确定“不起作用”是什么意思,但谓词中缺少了一些括号。不起作用意味着我的where子句中的条件也不会以我期望的方式影响结果集。不确定“不起作用”是什么意思但是您的谓词中缺少了一些括号。不起作用。这意味着我的where子句中的条件也不会以我期望的方式影响结果集。这也不起作用。我有一些行有“Catalog”一词,右边是将其与LDF和MDF一起显示为“LOG”。我也看到NDF的。这也不起作用。我有一些行有“Catalog”一词,右边是将其与LDF和MDF一起显示为“LOG”。我也在看NDF的。