是否可以根据动态查询的条件选择列。如果条件为假,则不应选择该列。我想在下面写为动态查询。
DECLARE @param varchar(10),
SELECT A,
IF (@param = 'U')
B = A-2, '
From Table tb
答案 0 :(得分:2)
您可以从这里开始:
-- Declarations
DECLARE
@param varchar(10),
@stm nvarchar(max),
@err int
-- Parameter value
SET @param = 'U' -- or another value
-- Statement
SET @stm = N'SELECT ColumnA'
IF (@param = 'U') SET @stm = @stm + N', ColumnB'
SET @stm = @stm + N' FROM YourTable'
-- Execution
EXEC @err = sp_executesql @stm
IF @err = 0 PRINT 'OK'
ELSE PRINT 'Error'
答案 1 :(得分:0)
我们可以根据条件获取列。为此,我们需要案例。
在这里,我添加了示例代码,
SELECT
CASE WHEN @param=1 THEN UserFullName ELSE firstName END as userName
FROM users
请接受。