Групп-ийг байхгүй тохиолдолд ашиглаж болох уу?
Групп-ийг байхгүй тохиолдолд ашиглаж болох уу?

Видео: Групп-ийг байхгүй тохиолдолд ашиглаж болох уу?

Видео: Групп-ийг байхгүй тохиолдолд ашиглаж болох уу?
Видео: ЭМНЕ ҮЧҮН МЕН L4D3тү күтүп жатам 2024, Арваннэгдүгээр
Anonim

Ашиглаж байна бүлэггүй байх by. a-тай асуулга байх заалт нь мөн байх ёстой бүлэг заалтаар. Хэрэв та орхих юм бол бүлэг -ээр, хаана заалтаар хасагдаагүй бүх мөрүүд дангаар буцаж ирдэг бүлэг . Учир нь хаана болон хоёрын хооронд ямар ч бүлэглэл хийгддэггүй байх заалтууд, тэд бие биенээсээ хараат бусаар ажиллах боломжгүй.

Мөн бүлэг функцийг нэгтгэх функцгүйгээр ашиглаж болох уу?

Та ашиглаж болно нь БҮЛЭГ BY заалт гүйгээр хэрэглэх нь нэгтгэх функц . Дараах асуулга нь төлбөрийн хүснэгтээс өгөгдлийг авдаг бүлгүүд үр дүн нь хэрэглэгчийн ID. Энэ тохиолдолд БҮЛЭГ BY нь үр дүнгийн багцаас давхардсан мөрүүдийг арилгадаг DISTINCT заалттай адил ажилладаг.

Цаашилбал, бүлэглэх, байх хоёрын ялгаа юу вэ? Үндсэн хоорондын ялгаа ХААНА ба БАЙХ -тэй хамт хэрэглэхэд өгүүлбэр ирдэг БҮЛЭГ BY заалт, Энэ тохиолдолд WHERE-г өмнө нь мөрүүдийг шүүнэ бүлэглэх болон БАЙХ дараах бичлэгүүдийг хасахад ашигладаг бүлэглэх . Та WHERE заалтгүйгээр ч ашиглаж болно БАЙХ эсвэл БҮЛЭГ BY, та үүнийг олон удаа харсан байх.

Дараа нь асуулт гарч ирнэ: бүлэг байх шаардлагатай юу?

1-г сонгоно уу байх 1 = 1; Тэгэхээр байх үгүй бүлэглэхийг шаарддаг . Байх нь нэгтгэх үе шат дууссаны дараа хэрэглэгдэх бөгөөд хэрэв та нэгтгэсэн үр дүнг шүүхийг хүсвэл ашиглах ёстой. Дүгнэж хэлэхэд, байх нь дараа хэрэглэсэн бүлэг үе шат харин хаана байна -аас өмнө хэрэглэнэ бүлэг үе шат.

Хаана заалтгүйгээр have өгүүлбэрийг ашиглаж болох уу?

Oracle-ийн танилцуулга HAVING заалт Энэ бол ашигласан GROUP BY-ийн буцаасан мөрийн бүлгүүдийг шүүх заалт . Хэрэв чи ашиглах нь HAVING заалтгүй GROUP BY заалт , the HAVING заалт WHERE шиг ажилладаг заалт . гэдгийг анхаарна уу HAVING заалт WHERE үед мөрийн бүлгийг шүүдэг заалт мөрүүдийг шүүдэг.

Зөвлөмж болгож буй: