SOQL ์ฟผ๋ฆฌ ์์ํ๊ธฐ
ํ์ต ๋ชฉํ
์ด ์ ๋์ ์๋ฃํ๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ํ์ ์ ์ ์ฌ์ฉํ์ฌ ์ ํจํ SOQL ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ฌ๋ฌ ์กฐ๊ฑด์ผ๋ก ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค.
- ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ ์ ์์ต๋๋ค.
์ด๋ฒ ๋ชจ๋์ด Apex ์ฝ๋ฉ ๊ธฐ์ ์๊ธฐ ํธ๋ ์ผ์ ์ฒซ ๋ฒ์งธ ๊ณผ์ ์ด๋ผ๋ฉด ๋๋ฌด ๋ฉ๋ฆฌ ์จ ๊ฒ์ ๋๋ค. ์ด๋ฒ ๋ชจ๋์ ๊ณ์ ์งํํ๊ธฐ์ ์์ ์ ๋จ๊ณ๋ก ๋์๊ฐ ๊ด๋ฆฌ์๋ฅผ ์ํ Apex ๊ธฐ์ด ๋ฐ ๊ด๋ฆฌ์๋ฅผ ์ํ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ฑ์ง๋ฅผ ํ๋ํ์ธ์.
์ด๋ฏธ ํด๋น ๋ฑ์ง๋ฅผ ์ป์ผ์ จ๋์? ์ ํ์ จ์ต๋๋ค! ์ง๊ธ๊น์ง ํด๋์ค, ๋ณ์, sObject๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธฐ์ด๋ฅผ ํ์ ํ์ผ๋ ์ด์ SOQL(sockle๋ก ๋ฐ์)์ด๋ผ๊ณ ๋ ํ๋ Salesforce Object Query Language์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
SOQL์ด๋?
SOQL์ด๋ Salesforce ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ ์ฝ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ธ์ด์ ๋๋ค. ๊ด๋ฆฌ์๋ฅผ ์ํ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ Data Manipulation Language(DML) ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ ์ฝ๋๋ฅผ ์ฝ์ , ์ ๋ฐ์ดํธ, ์ญ์ ํ ์ ์๋ค๊ณ ๋ฐฐ์ ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฏธ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? SOQL์ด ๋ฐ์ดํฐ ๊ฒ์์ ์ฝ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
SOQL ์ฟผ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ณด๊ณ ์๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ๋ณด๊ณ ์๋ฅผ ๋ง๋ค ๋๋ ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๊ตฌํด์ผ ํฉ๋๋ค.
- ํ์ํ๊ณ ์ ํ๋ ํ๋๊ฐ ๋ฌด์์ธ๊ฐ?
- ๊ทธ๋ฌํ ํ๋๋ ์ด๋์ ์์นํด ์๋๊ฐ?
SOQL ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ค ๋๋ ๋๊ฐ์ ์ง๋ฌธ์ด ํ์ํฉ๋๋ค. ์ฟผ๋ฆฌ์์ ์ด๋ฌํ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ํ๋์ ๊ฐ์ฒด์ ๋๋ค.

์ด ์ฟผ๋ฆฌ์๋ SOQL ํค์๋(SELECT ๋ฐ FROM), ๋ ์ฝ๋ ํ๋(Name ๋ฐ Email), ๊ฐ์ฒด(ํ์ค Contact ๊ฐ์ฒด)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ด๋ฌํ ์ฟผ๋ฆฌ๊ฐ ํ๋ ์ญํ ์ ๋ฌด์์ผ๊น์? ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๋ฝ์ฒ ๋ ์ฝ๋์ ๊ดํ ํน์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ผ ์ด๋ฌํ ์กฐ๊ฐ๋ค์ ์กฐํฉํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์ดํด๋ณด๊ณ ๋ช ๊ฐ์ง ์ฟผ๋ฆฌ ์์ฑ ์ฐ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ SOQL ์ฟผ๋ฆฌ์์ ํ์์ ์ธ ๋ถ๋ถ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ์ SOQL ์
SELECT
SOQL ์ฟผ๋ฆฌ์ ํ ๋๋ ๋ ๊ฐ์ง ์ , ์ฆ SELECT ์ ๊ณผ FROM ์ ์ ๋๋ค. ์ ์ ํผ์ฆ ์กฐ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์ ์ ์ ์ฒด ์ฟผ๋ฆฌ์์ ์ผ๋ถ๋ฅผ ์ฐจ์งํ๋ ์์์ ๋๋ค.

๋ชจ๋ SOQL ์ฟผ๋ฆฌ์๋ SELECT ํค์๋๋ก ์์ํ๋ SELECT ์ ์ด ์์ต๋๋ค. SELECT ์ ์ Salesforce ๋ ์ฝ๋์์ ํ๋ ์ด์์ ํ๋๋ฅผ ์ง์ ํฉ๋๋ค(์ผํ๋ก ๊ตฌ๋ถ๋จ). ์ด ์ฟผ๋ฆฌ ์์๋ Name๊ณผ Email์ด๋ผ๋ ๋ ๊ฐ์ง ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
ํ๋ ์ด๋ฆ์ ๊ดํ ์ฐธ๊ณ ์ฌํญ: ์ฌ๋ฌ๋ถ์ ๊ด๋ฆฌ์๋ก์ ๋ค๋ฅธ ๊ด๋ฆฌ์์๊ฒ ๋งํ ๋ ํ๋๋ฅผ ํ๋ ๋ ์ด๋ธ์ด๋ผ๊ณ ๋ถ๋ฅผ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฝ๋์์ ๊ฐ๋ฐ์๋ค์ API ์ด๋ฆ์ ๋์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ SOQL ์ฟผ๋ฆฌ์์๋ ํญ์ ํ๋ ๋ ์ด๋ธ์ด ์๋ ํ๋ API ์ด๋ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ํ๋์ API ์ด๋ฆ์ด ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ ๊ฑฑ์ ํ์ง ์์๋ ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด ๋ชจ๋ ๋ท๋ถ๋ถ์์ ๋ค๋ฃน๋๋ค.
FROM
SOQL ์ฟผ๋ฆฌ๋ฅผ ๋ง๋๋ ๋ฐ ํ์ํ ๋ ๋ฒ์งธ ์ ์ FROM ์ ์ ๋๋ค.

FROM ํค์๋๋ก ์์ํ๋ FROM ์ ์ Salesforce ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ Contact ๊ฐ์ฒด์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๊ฐ ํ์ํฉ๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ํ์๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Trail Together๋ก ํจ๊ป ๋ฐ๋ผํ๊ธฐ
์ด ๋จ๊ณ๋ฅผ ์ ๋ฌธ๊ฐ์ ํจ๊ป ์งํํ๊ณ ์ถ์ผ์ ๊ฐ์? Trailhead Live์ Trail Together ์๋ฆฌ์ฆ์ ํฌํจ๋ ์ด ๋น๋์ค๋ฅผ ์์ฒญํ์ธ์. ์ ์ฒด ์ธ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ๋ ๋ฆฌ์์ค ์น์ ์ ์์ต๋๋ค.
SOQL์ ์ค์ตํ ์ค๋น๊ฐ ๋์ จ๋์?
์ด ๋ฐฐ์ง์์๋ Developer Console์ ์ฟผ๋ฆฌ ํธ์ง๊ธฐ์์ SOQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ๋จ๊ณ๋ฅผ ๋ณด์ฌ ์ค๋๋ค. ์ด ๋ฐฐ์ง์๋ ์ค์ต ๊ณผ์ ๊ฐ ์์ง๋ง, ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก Trailhead Playground๋ฅผ ์์ํ์ฌ ์ ์ฐจ๋ฅผ ๋ฐ๋ผํ๊ณ ์ค์ตํด ๋ณผ ์ ์์ต๋๋ค. ๋จผ์ Trailhead์ ๋ก๊ทธ์ธ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ํ์ด์ง์ ์ค๋ฅธ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์ ์๋ ์ฌ์ฉ์ ์๋ฐํ๋ฅผ ํด๋ฆญํ๊ณ ๋๋กญ๋ค์ด์์ Hands-on Orgs(์ค์ต ์กฐ์ง)๋ฅผ ์ ํํฉ๋๋ค. ์ด๊ณ ์ถ์ ์กฐ์ง ์์ Launch(์์)๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋์ ์ Playground๋ฅผ ๋ง๋ค๋ ค๋ฉด Create Playground(Playground ๋ง๋ค๊ธฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ฟผ๋ฆฌ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ ์์ฑํ๊ธฐ
- Trailhead Playground์์
์ ํด๋ฆญํ๊ณ Developer Console์ ์ ํํฉ๋๋ค.
-
File(ํ์ผ) | Open(์ด๊ธฐ) | Objects(๊ฐ์ฒด) | Contact(์ฐ๋ฝ์ฒ)๋ฅผ ํด๋ฆญํฉ๋๋ค.

-
Open(์ด๊ธฐ)์ ํด๋ฆญํฉ๋๋ค.
Contact(์ฐ๋ฝ์ฒ) ๊ฐ์ฒด๊ฐ ๊ด๋ จ๋ ๋ชจ๋ ํ๋์ ์ด๋ฆ ๋ฐ ์ ํ ๋ชฉ๋ก์ ์ฝ๋๋ค.
- ํ๋จ ํจ๋์์ Query Editor(์ฟผ๋ฆฌ ํธ์ง๊ธฐ) ํญ์ ์ ํํฉ๋๋ค. (ํญ์ด ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ ์ฐฝ ํ๋จ์ ์๋ ์์ชฝ ํ์ดํ๋ฅผ ํด๋ฆญํฉ๋๋ค.)

์ฟผ๋ฆฌ ํธ์ง๊ธฐ๋ ์ธ ๊ฐ์ง ์น์ ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ผ์ชฝ ์๋จ ์น์ (1)์๋ ์ฟผ๋ฆฌ๊ฐ ํ์๋ฉ๋๋ค. ์ฌ๊ธฐ์์ ์ฟผ๋ฆฌ๋ฅผ ํธ์งํ ์ ์์ต๋๋ค. ์ผ์ชฝ ํ๋จ ์น์ (2)์๋ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค. ์ค๋ฅธ์ชฝ ์น์ (3)์๋ ์คํ๋ SOQL ์ฟผ๋ฆฌ ๋ด์ญ์ด ์ ์ฅ๋ฉ๋๋ค.
- CTRL + ํด๋ฆญ(Windows) ๋๋ CMD + ํด๋ฆญ(Mac)์ ์ฌ์ฉํ์ฌ Email(์ด๋ฉ์ผ), Name(์ด๋ฆ), Languages__c ํ๋๋ฅผ ์ ํํฉ๋๋ค.
-
Query(์ฟผ๋ฆฌ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ํํ ๊ฐ์ฒด ๋ฐ ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก SOQL ์ฟผ๋ฆฌ๊ฐ ์ฟผ๋ฆฌ ํธ์ง๊ธฐ์ ํ์๋ฉ๋๋ค. ์ฟผ๋ฆฌ ์์ฑ๊ธฐ์์ ํ๋๋ฅผ ์ ํํ๋ฉด ์ฟผ๋ฆฌ ์์ฑ๊ธฐ๊ฐ ์๋์ผ๋ก ํ๋ API ์ด๋ฆ์ SOQL ์ฟผ๋ฆฌ์ ์ฝ์ ํฉ๋๋ค. ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด API ์ด๋ฆ์ ์ธ์ฐ๊ฑฐ๋ ๊ฒ์ํ ํ์๊ฐ ์์ต๋๋ค.
-
Execute(์คํ)๋ฅผ ํด๋ฆญํฉ๋๋ค.

์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ฉด ๊ฒฐ๊ณผ์ ์์ฒญ๋ ํญ๋ชฉ์ด ์ ํํ ํ์๋ฉ๋๋ค. ๋ํ ์ฟผ๋ฆฌ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด Id๊ฐ ๋ถ๊ฐ์ ์ผ๋ก ๋ฐํ๋ฉ๋๋ค. ์์ฃผ ์ข๋ค์!
์ ํ์ SOQL ์
SELECT ์ ๊ณผ FROM ์ ์ ํ์์ ์ด์ง๋ง SOQL์๋ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ์ ํ์ ์ ๋ ์์ต๋๋ค.
Trailhead Playground์์ ์ฌ๋ฌ๋ถ์ด ๋ง๋ ์ฟผ๋ฆฌ ์์๋ ์๋นํ ์ ์ ์์ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ๋ง์ง๋ง ์ฟผ๋ฆฌ๋ 20๊ฐ ๋ ์ฝ๋๋ฅผ ๋ฐํํ์ต๋๋ค. ๋ ์ฝ๋๊ฐ ์ ์ฒ๊ฐ์ ์ด๋ฅธ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ฌํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ์๋นํ ๋ฐ์ด๋ ์ปดํจํ ์ฑ๋ฅ์ด ํ์ํ ๊ฒ์ ๋๋ค. SOQL์ด ๋ชจ๋ ๋ ์ฝ๋์ ์ผ๋ถ๋ฅผ ๋ฐํํ ์ ์๋ค๋ฉด ์ข์ง ์์๊น์? ์ค์ ๋ก ๊ฐ๋ฅํฉ๋๋ค.
WHERE
WHERE ์ ์ ๋ ์ฝ๋๋ฅผ ์ ํํ๊ณ ๋ฐํํ๊ธฐ ์ํด ์ผ์นํด์ผ ํ๋ ์กฐ๊ฑด์ ์ค์ ํฉ๋๋ค. ํํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก WHERE ์ ์ ์ฌ์ฉํ์ฌ ๋ชฉ๋ก ๋ณด๊ธฐ ๋๋ ๋ณด๊ณ ์์ ํ์๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ์ธ์. ์๋ฅผ ๋ค์ด ์ด๋ฆ์ด Stella์ธ ์ฐ๋ฝ์ฒ๋ฅผ ์ฐพ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฟผ๋ฆฌ ๋์ WHERE FirstName = 'Stella'๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
SELECT Name, Email FROM Contact WHERE FirstName = 'Stella'
๋ ๊ฐ ์ด์์ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ WHERE ์ ์ ์ ์ํ ์๋ ์์ต๋๋ค. AND, OR, IN์ ์ธ ๊ฐ์ง ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์๋ ๋ช ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ช ๊ฐ์ง ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
AND |
AND๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ์ฟผ๋ฆฌ๋ ์ด๋ฆ์ด Stella์ด๊ณ ์ฑ์ด Pavlova์ธ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. SELECT Name, Email FROM Contact WHERE FirstName = 'Stella' AND LastName = 'Pavlova' |
OR |
OR์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ง ์กฐ๊ฑด ์ค ํ ๊ฐ์ง๋ฅผ ์ถฉ์กฑํ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ์ฟผ๋ฆฌ๋ ์ด๋ฆ์ด James์ด๊ฑฐ๋ ์ฑ์ด Barr์ธ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. SELECT Name, Email FROM Contact WHERE LastName = 'James' OR LastName = 'Barr' |
IN |
IN์ ์ฌ์ฉํ์ฌ ์ธ ๊ฐ์ง ์ด์์ ์กฐ๊ฑด ์ค ์ต์ ํ ๊ฐ์ง๋ฅผ ์ถฉ์กฑํ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. IN ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ ํ ๋ชฉ๋ก์ ๊ฐ์ด๋ LIST ๋๋ SET์ ๊ฐ์ ๋ฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. IN์ OR ์กฐ๊ฑด์ด ๋ง์์ง ์ ์๋ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค. ์ด ์ฟผ๋ฆฌ๋ ์ฑ์ด James, Barr, Nedaerk ๋๋ Forbes์ธ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. SELECT Name, Email FROM Contact
WHERE LastName IN ('James', 'Barr', 'Nedaerk', 'Forbes') |
LIMIT
LIMIT ํค์๋๋ ๋ฐํํ ๋ ์ฝ๋์ ์ต๋ ๊ฐ์๋ฅผ ์ค์ ํฉ๋๋ค. LIMIT๋ ํ
์คํธ ์ค์ธ ์ํฉ์์ ๋๋์ ๋ฐ์ดํฐ ์งํฉ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์ํ์ง ์๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค. SOQL์ ๋ํด ๋ ์์ธํ ์๊ฒ ๋ ์๋ก ๋๋ฌด ๋ง์ ๋ ์ฝ๋๊ฐ ๋ฐํ๋์ง ์๋ ๋ณด๋ค ์ ์ ํ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ ๊ฒ์
๋๋ค. ํ์ง๋ง ๊ทธ๋๊น์ง๋ LIMIT๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐํธํฉ๋๋ค. ์ฟผ๋ฆฌ์ ์ ํ์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
- Developer Console์ ์ฟผ๋ฆฌ ํธ์ง๊ธฐ๋ก ๋์๊ฐ๋๋ค.
- ์ฟผ๋ฆฌ ๋์ ๋ค์๊ณผ ๊ฐ์ด
LIMIT 5๋ฅผ ์ ๋ ฅํฉ๋๋ค.SELECT Email, Name FROM Contact LIMIT 5
-
Execute(์คํ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
Query Results(์ฟผ๋ฆฌ ๊ฒฐ๊ณผ) ์ฐฝ์ 5๊ฐ ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
ORDER BY
๊ฒฐ๊ณผ์ ์์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ดค์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ORDER BY ์ ์ ์ฌ์ฉํ์ฌ ํน์ ํ๋์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ์ธ์. ์ ํ์ ์ผ๋ก ORDER BY ์ ์ ํ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋ ๋์ํธ์์์ ๊ฐ์ด ์ค๋ฆ์ฐจ์(๊ธฐ๋ณธ๊ฐ) ๋๋ ๋ด๋ฆผ์ฐจ์์ ์ง์ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋น์ด ์๋ ํ๋ ๊ฐ์ด ๋ง์ ๊ฒฝ์ฐ NULLS ํ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ NULL ๊ฐ์ ์ฒ์์ผ๋ก(๊ธฐ๋ณธ๊ฐ) ๋๋ ๋ง์ง๋ง์ผ๋ก ๊ทธ๋ฃนํํฉ๋๋ค.
๊ตฌ๋ฌธ |
์ค๋ช |
์ |
|---|---|---|
ASC |
๊ฒฐ๊ณผ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐํํฉ๋๋ค. |
SELECT Name, Email FROM Contact ORDER BY Name ASC LIMIT 5 |
DESC |
๊ฒฐ๊ณผ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐํํฉ๋๋ค. |
SELECT Name, Email FROM Contact ORDER BY Email DESC LIMIT 5 |
|
NULLS FIRST | LAST |
null ๋ ์ฝ๋๋ฅผ ์ฒ์(NULLS FIRST) ๋๋ ๋(NULLS LAST)์ ๋ฐํํฉ๋๋ค |
SELECT Name, Email FROM Contact ORDER BY Email NULLS LAST |
ASC ์์์์ SELECT Name, Email FROM Contact ORDER BY Name ASC LIMIT 5๋ 5๊ฐ ์ฐ๋ฝ์ฒ์์ Name ๋ฐ Email ํ๋๋ฅผ ๋ฐํํ์ฌ ์ด๋ฆ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.

NULLS ์์์์๋ SELECT Name, Email FROM Contact ORDER BY Email NULLS LAST๊ฐ (์ค๋ฆ์ฐจ์์ด ์ ๋ ฌ ์์์ ๊ธฐ๋ณธ๊ฐ์ด๋ฏ๋ก) ์ด๋ฆ ๋ฐ ์ด๋ฉ์ผ์ ์ด๋ฉ์ผ์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐํํฉ๋๋ค. ์ด๋ฉ์ผ ์ฃผ์๊ฐ ์๋ ๋ ์ฝ๋๋ ๋์ ๊ทธ๋ฃนํ๋ฉ๋๋ค.

SOQL์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋์ ํ๋ฉด ๋ฐฉ๋ํ ๋ฐ์ดํฐ ์งํฉ์ ๊ฒ์ํ๊ณ , ์ ํ์ ์ค์ ํ์ฌ ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ , ๋ฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ ๋ฆฌํ ์ ์์ต๋๋ค. ๊ฝค ์ ์ฉํ์ฃ .
๋ฆฌ์์ค
- Trailhead: Developer Console ๊ธฐ์ด
- Trailhead: Apex ๊ธฐ๋ณธ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Salesforce ๊ฐ๋ฐ์ ๋ฌธ์: SOQL ๋ฐ SOSL ์ฐธ์กฐ
