SQL - 将字符串连接到参数($ 1)

时间:2011-03-14 18:25:59

标签: sql

首次在网站上发帖,所以我希望我不违反任何规则,有人可以帮助我。

我有下表:

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”并获得上述任何结果?

由于

3 个答案:

答案 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