ฉันเห็นสองทางเลือก มากที่สุดโดยตรงการแปลภาษาดูเหมือนจะเป็น:
SELECT CASE
WHEN m2.MATERIAL IS NOT NULL THEN 'Found'
ELSE 'Not Found'
END AS IZZIT_THERE
FROM SCHEMA.MATERIAL_TABLE m2
RIGHT OUTER JOIN SCHEMA.MATERIAL_TABLE m1
ON m1.MATERIAL = m2.MATERIAL
WHERE m1.OLD_MATERIAL LIKE '%55AD%'
แต่การใช้ของ RIGHT OUTER JOIN
อาจจะไม่ค่อยเหมือน. เพื่อเปลี่ยนไปมากกคุ้นเคย LEFT OUTER JOIN
เราต้องการจะย้อนกลับตำแหน่งของตารางข้อมูลเรียบร้อยแล้วในการสืบค้นและเปลี่ยนแปลงได้ยังไงเงื่อนไขเป็นการแสดงรายกา:
SELECT CASE
WHEN m1.MATERIAL IS NOT NULL THEN 'Found'
ELSE 'Not Found'
END AS IZZIT_THERE
FROM SCHEMA.MATERIAL_TABLE m1
LEFT OUTER JOIN SCHEMA.MATERIAL_TABLE m2
ON m2.MATERIAL = m1.MATERIAL
WHERE m1.OLD_MATERIAL LIKE '%55AD%'
ฉันเก็บชื่อเดียวกันดังนั้นคุณสามารถเห็นได้ว่าพวกเขาย้ายอยู่ในบการค้นหา. ในทั้งสองค้นข้อมูล m1
เป็นกลุ่มหลักโต๊ะนั่นคือ,มันเป็นคนที่ ต้อง ให้ข้อมูลขณะที่ m2
คือที่เกิดเหตุที่สองหรือ"ตัวเลือก"โต๊ะ-มันอาจจะหรืออาจจะไม่มีข้อมูลซึ่งตรงกับกลุ่มหลัก.
ส่วนตัวแล้วฉันอยากจะมาร่วมกับ subqueries ที่ฉันเจอมันง่ายกว่าที่จะเข้าใจแต่ YMMV.