首次在网站上发帖,所以我希望我不违反任何规则,有人可以帮助我。
我有下表:
machine_name variable_name variable_value
machine1 WAV 56789
machine1 WAV_CONT 5
machine1 AVI 67890
machine1 AVI_CONT 3
machine2 WAV 786579
machine2 WAV_CONT 20
machine2 AVI 182641
machine2 AVI_CONT 9
我正在使用参数($ 1)。我想创建一个给出以下结果的查询 当用户输入“wav”时:
machine_name variable_name space count
machine1 WAV 56789 5
machine2 WAV 786579 20
或者当用户输入“AVI”时的其他结果
machine_name variable_name space count
machine1 AVI 67890 3
machine2 AVI 182641 9
两个字段只能使用一个参数吗?我的意思是,有没有办法将$ 1连接到字符串“_CONT”,以便用户只需输入“WAV”或“AVI”并获得上述任何结果?
由于
答案 0 :(得分:0)
我会在表格中添加一个标有“Type”的新字段。然后你可以使用“WAV”或“AVI”进行过滤。
如果您只是需要查询:
declare @param varchar(10)
set @param = 'WAV'
Select * from YOUR_TABLE where variable_name = @param
答案 1 :(得分:0)
select * from my_table where variable name in (@param, @param + '_CONT')
答案 2 :(得分:0)
你可以使用穷人的支点:
select
machine_name,
@param as variable_name,
-- Turn rows into columns:
-- These expressions are zero for the rows we don't want.
sum(case when variable_name like '%_CONT' then 0 else variable_name end) as space,
sum(case when not variable_name like '%_CONT' then 0 else variable_name end) as count
from TABLE_NAME
group by machine_name