मैं एक पोस्टग्रेएसक्यूएल को SQL सर्वर में कनवर्ट करने की कोशिश कर रहा हूं। लेकिन यह सवाल काम नहीं करता है।एएस का उपयोग कर सीटीई से चुनें? एसक्यूएल सर्वर 2008
मैं क्या गलत कर रहा हूं? मैंने पहले से अर्धविराम जोड़ने की कोशिश की लेकिन कोई किस्मत नहीं।
SELECT
member_a AS you, member_b AS mightknow, shared_connection,
CASE
WHEN (n1.member_job_country = n2.member_job_country AND n1.member_job_country = n3.member_job_country) THEN 'country in common'
WHEN (n1.member_unvan_id = n2.member_unvan_id AND n1.member_unvan_id = n3.member_unvan_id) THEN 'unvan in common'
ELSE 'nothing in common'
END AS reason
FROM (
WITH transitive_closure(member_a, member_b, distance, path_string, direct_connection) AS
(SELECT
member_a, member_b, 1 AS distance,
CAST(member_a as varchar(MAX)) + '.' + CAST(member_b as varchar(MAX)) + '.' AS path_string,
member_b AS direct_connection
FROM Member_Contact_Edges
WHERE member_a = 45046 -- set the starting node
UNION ALL
SELECT
tc.member_a, e.member_b, tc.distance + 1,
CAST(tc.path_string as varchar(MAX)) + CAST(e.member_b as varchar(MAX)) + '.' AS path_string,
tc.direct_connection
FROM Member_Contact_Edges AS e
JOIN transitive_closure AS tc ON e.member_a = tc.member_b
WHERE tc.path_string NOT LIKE '%' + CAST(e.member_b as varchar(MAX)) + '.%'
AND tc.distance < 2
)
SELECT
member_a, member_b,direct_connection AS shared_connection
FROM transitive_closure
WHERE distance = 2
) AS youmightknow
LEFT JOIN Members AS n1 ON youmightknow.member_a = n1.memberID
LEFT JOIN Members AS n2 ON youmightknow.member_b = n2.memberID
LEFT JOIN Members AS n3 ON youmightknow.shared_connection = n3.memberID
WHERE (n1.member_job_country = n2.member_job_country
AND n1.member_job_country = n3.member_job_country)
OR (n1.member_unvan_id = n2.member_unvan_id
AND n1.member_unvan_id = n3.member_unvan_id);
त्रुटि मैं:
संदेश 156, स्तर 15, राज्य 1, रेखा कीवर्ड 'के साथ' के पास 11
गलत वाक्य रचना।
संदेश 319, स्तर 15, राज्य 1, रेखा 11
कीवर्ड 'के साथ' के भीतर गलत वाक्यविन्यास। यदि यह कथन सामान्य तालिका अभिव्यक्ति है, तो xmlnamespaces खंड या ट्रैकिंग संदर्भ खंड को बदलने, पिछले कथन को सेमिकोलन के साथ समाप्त कर दिया जाना चाहिए।
संदेश 102, स्तर 15, राज्य 1, रेखा 34
') के पास गलत वाक्यविन्यास।
यहां संदर्भ है; Graphs in the Database - SQL Meets Social Networks - लेख के निचले हिस्से में फेसबुक सुझाव भाग देखें।
अग्रिम धन्यवाद
धन्यवाद @ मार्टिन अब एक आकर्षण की तरह काम कर रहा है और @ माइकल लुडविग: संदर्भ के लिए धन्यवाद, इससे मुझे बहुत मदद मिली। –