根据条件动态查询到select列
Dynamic query to select column based on the condition
是否可以select列根据条件进行动态查询。如果条件为假,则不应 select 该列。我想在下面写成动态查询。
DECLARE @param varchar(10),
SELECT A,
IF (@param = 'U')
B = A-2, '
From Table tb
我们可以根据条件获取列。为此,我们需要案例。
这里,我添加了示例代码,
SELECT
CASE WHEN @param=1 THEN UserFullName ELSE firstName END as userName
FROM users
请收下。
你可以从这个开始:
-- 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'
是否可以select列根据条件进行动态查询。如果条件为假,则不应 select 该列。我想在下面写成动态查询。
DECLARE @param varchar(10),
SELECT A,
IF (@param = 'U')
B = A-2, '
From Table tb
我们可以根据条件获取列。为此,我们需要案例。
这里,我添加了示例代码,
SELECT
CASE WHEN @param=1 THEN UserFullName ELSE firstName END as userName
FROM users
请收下。
你可以从这个开始:
-- 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'