簡體   English   中英

SQL PIVOT沒有列名稱的表

[英]SQL PIVOT a table with no column names

我有一個查詢返回列表中的值。 例如:

SELECT *
FROM some_table
WHERE name IN ('name1', 'name2', 'name3', 'name4', 'name5', 'name6', 'name7', 'name8', 'name9', 'name10')

我想看看列表中可能沒有的內容。 例如:

SELECT *
FROM #list
WHERE name NOT IN (SELECT name FROM some_table)

我的清單有幾百個值。 如何將清單變成表格?

SELECT 'name1', 'name2', 'name3', 'name4', 'name5', 'name6', 'name7', 'name8', 'name9', 'name10'

INTO #list UNPIVOT(?????)

create table SomeTable (  -- The reference table
    Name varchar(20));

insert SomeTable(Name)
values
     ('name1')
    ,('name2')
    ,('name3')
    ,('name4')
    ,('name5');


select T1.Name from
(values                 -- The list to compare to the reference table
     ('name1')
    ,('name2')
    ,('name129')) as T1(Name)
EXCEPT
select Name from SomeTable;

這將返回“ name129”,因為該值在列表中,但不在參考表中。 使用NOT EXISTS或外部NOT EXISTS可以達到相同的效果。

select T1.Name from
(values                 -- The list to compare to the reference table
     ('name1')
    ,('name2')
    ,('name129')) as T1(Name)
left outer join SomeTable as st
    on st.Name = T1.Name
where st.Name is NULL;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM