Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择一组值作为列,而不创建_Sql_Sql Server 2000 - Fatal编程技术网

Sql 选择一组值作为列,而不创建

Sql 选择一组值作为列,而不创建,sql,sql-server-2000,Sql,Sql Server 2000,我正在尝试编写一个查询,该查询将返回所有查询ID值以及所有匹配的表ID值,其中查询ID未在任何表中指定,并且我无法创建表,因此必须在查询本身中指定: QUERY_ID TABLE_ID 1 1 2 NULL 3 3 4 4 5 NULL 我觉得应该有一个简单的方法来做到这一点,但我一辈子都想不出来。任何帮助都会很好。谢谢 使用内置主..spt_值表的单向 select q.QUERY_ID

我正在尝试编写一个查询,该查询将返回所有查询ID值以及所有匹配的表ID值,其中查询ID未在任何表中指定,并且我无法创建表,因此必须在查询本身中指定:

QUERY_ID    TABLE_ID
1           1
2           NULL
3           3
4           4
5           NULL

我觉得应该有一个简单的方法来做到这一点,但我一辈子都想不出来。任何帮助都会很好。谢谢

使用内置主..spt_值表的单向

select q.QUERY_ID, t.TABLE_ID
from (
    select 1 as QUERY_ID
    union all
    select 2 
    union all
    select 3 
    union all
    select 4 
    union all
    select 5 
) q 
left outer join MyTable t on q.QUERY_ID = t.TABLE_ID
SELECT number AS QUERY_ID,TABLE_ID
FROM master..spt_values v
LEFT JOIN YourTable y ON  y.QUERY_ID = y.TABLE_ID
WHERE TYPE = 'p'
AND number > 0
AND number <= (SELECT COUNT(*) FROM YourTable)
order by QUERY_ID
还是像这样

select identity(int,1,1) as QUERY_ID,TABLE_ID
into #temp
from YourTable

select * from #temp
order by QUERY_ID

在sql server 2005及更高版本上,有行数函数,因此可能需要升级:-)

一种方法,使用内置的master..spt\u values表

SELECT number AS QUERY_ID,TABLE_ID
FROM master..spt_values v
LEFT JOIN YourTable y ON  y.QUERY_ID = y.TABLE_ID
WHERE TYPE = 'p'
AND number > 0
AND number <= (SELECT COUNT(*) FROM YourTable)
order by QUERY_ID
还是像这样

select identity(int,1,1) as QUERY_ID,TABLE_ID
into #temp
from YourTable

select * from #temp
order by QUERY_ID

在sql server 2005及更高版本上,有行数函数,因此可能需要升级:-)

是的,它存在,但我认为只有1024行,不像2005年的2048行,UP3可能已经添加了service pack 3或更多,但不记得了啊,我应该说明我的示例是我真正想做的事情的简化——查询ID是一个非顺序、不连续列表中的7位ID……是的,它存在,但我相信只有1024行,不像2005年的2048行,UP3可能已经添加了service pack 3左右,但我再也不记得了,我应该说明我的示例是我真正想做的事情的简化——查询ID是一个非有序、不连续列表中的7位ID……啊,是的——我对UNION ALL很感兴趣,但我没有把它放在一起。。。谢谢啊,是的,我对工会很感兴趣,但我没有把它放在一起。。。谢谢