是否可以在选择语句中选择列之前对其进行测试?
这对我来说可能很难解释,在过去的 4 个月里,我实际上不得不自学动态 SQL。我正在使用动态生成的参数 ( @TableName
) 将单个表存储在一个循环中(为含糊而道歉,但细节不相关)。
然后我希望能够有条件地从表中选择一列(我不知道每个表是否有某些列)。我已经想出了如何检查选择语句之外的列...
SET @SQLQuery2 = 'Select @OPFolderIDColumnCheck = Column_Name From INFORMATION_SCHEMA.COLUMNS Where Table_Name = @TABLENAME And Column_Name = ''OP__FolderID'''
SET @ParameterDefinition2 = N'@TABLENAME VARCHAR(100), @OPFolderIDColumnCheck VARCHAR(100) OUTPUT'
EXECUTE SP_EXECUTESQL @SQLQuery2, @ParameterDefinition2, @TABLENAME, @OPFolderIDColumnCheck OUTPUT
IF @OPFolderIDColumnCheck IS NULL
BEGIN
SET @OP__FOLDERID = NULL
END
ELSE
IF @OPFolderIDColumnCheck IS NOT NULL
BEGIN
...etc
但我希望能够在 select 语句中做到这一点。有没有办法检查OP__FOLDERID
表中是否存在?
我希望能够做这样的事情:
SELECT IF 'OP__FOLDERID' EXISTS IN [TABLE] THEN 'OP__FOLDERID' FROM [TABLE]
感谢您提供的任何帮助或指导。