web-dev-qa-db-ja.com

SQL ServerスクリプトでSELECTの最後にXを使用していますか?

私はT-SQLに比較的慣れていないため、以前のスクリプトを調べたところ、まったく解析できない行を見つけました。自分で調べるのは難しいことです。アドバイスを期待しています。

この行はWHILEループ内で発生しますが、それは重要ではないと思います。私は機能的には、これはIDを共有するいくつかの行にまたがる列から値を収集し、それらをカンマで1つのフィールドに連結していると考えています。しかし、これが何と呼ばれているのか、自分で使用するためにどのように検索するのかわかりません。

最後にこの「x」は何をしていますか?誰でも私にこれに関する情報を教えてもらえますか?

(select @invtid = coalesce(@invtid + ',',' ')+rtrim(RoleID) 
FROM (
    Select distinct roleid 
    from UserAccounts 
    WHERE CustID = @custID
     )
 x)

ありがとう。

5
jbz

「X」は エイリアス で、次の部分です。

Select distinct roleid 
from UserAccounts 
WHERE CustID = @custID

したがって、次のように使用できます。

SELECT x.roleid
FROM  
(    Select distinct roleid 
from UserAccounts 
WHERE CustID = @custID) x
where x.roleid >100

大まかな構成では、クエリは次のようになります。

 (select @invtid = coalesce(@invtid + ',',' ')+rtrim(x.RoleID) 
 FROM (
    Select distinct roleid 
    from UserAccounts 
    WHERE CustID = @custID
     )x
 )

技術的には、エイリアスとして何でも使用できます。 「X」は通常、より説明的なエイリアスで機能します。 「役割」のようなもの

8
MguerraTorres