として行数1を得るまでの条件は/どこ条件を無視ここで、iは、1つのレコードの結果を得れば追加スキップまたは私は私が実行を停止する必要があるいくつかのCTEまたはクエリを探していた結果
CREATE TABLE EmployeeTest
(
ID INT PRIMARY KEY IDENTITY(1,1)
,Name VARCHAR(100)
,City VARCHAR(100)
,Phone VARCHAR(100)
,ZipCode VARCHAR(20)
)
INSERT INTO EmployeeTest VALUES ('Venkat','Hyderabad','9849898401','500018')
INSERT INTO EmployeeTest VALUES ('Venkat','Hyderabad','9849898401','500019')
INSERT INTO EmployeeTest VALUES ('Venkat','Hyderabad','9849898402','500019')
INSERT INTO EmployeeTest VALUES ('Venkat','Secunderabad','9849898402','500019')
INSERT INTO EmployeeTest VALUES ('Name1','Secunderabad','9849898402','500019')
Ex: 1
--output is 1
select * from employeetest
where name = 'Venkat'
and city = 'hyderabad'
and phone='9849898401'
and zipcode='500018'
OUTPUT: 1ヴェンカトハイデラバード9849898401 500018
例2:ジップコードと 結果500020.
select * from employeetest
where name = 'Venkat'
and city = 'hyderabad'
and phone='9849898401'
and zipcode='500020'
OUTPUT: 出力が1つのレコードでなければなりませんが、我々は、郵便番号500020.
We have two records but i need first as output
1 Venkat Hyderabad 9849898401 500018
2 Venkat Hyderabad 9849898401 500019
Final Output would be,
1 Venkat Hyderabad 9849898401 500018
ではレコードを持っていないとして、私たちは郵便番号を無視する必要があり、私たちはCTEでそれを行うことができると思うが、それを達成することができません。
目的は、単一のレコードを取得するまで、where句の各条件を適用することです。条件1 [name = 'Venkat']のレコードが増えたら、2番目の[city = 'hyderabad']などを適用する必要があります.....
前もって感謝します。
'where t.matches <> 0'を追加する必要があると思うので、何もマッチしなければ何も返しません。 – artm
@artmいいキャッチ!私は私の答えを編集しました、ありがとう。 –
awesome多くのありがとうGiorgosとartm、結果は私が探しているものと同じですが、CROSS APPLYがここでどのように動作するかはわかりません。 –