9.24. СÑавнение ÑаблиÑнÑÑ ÑÑÑок и маÑÑивов #
Ð ÑÑом Ñазделе опиÑÑваÑÑÑÑ Ð½ÐµÑколÑко ÑпеÑиалÑнÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑий, позволÑÑÑÐ¸Ñ ÑÑавниваÑÑ Ð³ÑÑÐ¿Ð¿Ñ Ð·Ð½Ð°Ñений. СинÑакÑÐ¸Ñ ÑÑÐ¸Ñ ÐºÐ¾Ð½ÑÑÑÑкÑий ÑвÑзан Ñ ÑоÑмами вÑÑажений Ñ Ð¿Ð¾Ð´Ð·Ð°Ð¿ÑоÑами, опиÑаннÑми в пÑедÑдÑÑем Ñазделе, а оÑлиÑаÑÑÑÑ Ð¾Ð½Ð¸ оÑÑÑÑÑÑвием подзапÑоÑов. ÐонÑÑÑÑкÑии, в коÑоÑÑÑ Ð² каÑеÑÑве подвÑÑажений иÑполÑзÑÑÑÑÑ Ð¼Ð°ÑÑивÑ, ÑвлÑÑÑÑÑ ÑаÑÑиÑениÑми Postgres Pro; вÑе оÑÑалÑнÑе ÑоÑÐ¼Ñ ÑооÑвеÑÑÑвÑÑÑ ÑÑандаÑÑÑ SQL. ÐÑе опиÑаннÑе здеÑÑ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкие знаÑÐµÐ½Ð¸Ñ (true/false).
9.24.1. IN #
вÑÑажениеIN (знаÑение[, ...])
СпÑава в ÑÐºÐ¾Ð±ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑваеÑÑÑ ÑпиÑок вÑÑажений. РезÑлÑÑаÑом бÑÐ´ÐµÑ Â«true», еÑли знаÑение левого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑавнÑеÑÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð· знаÑений вÑÑажений в пÑавой ÑаÑÑи. ÐÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑÑиÑаÑÑ ÐºÑаÑкой запиÑÑÑ ÑÑловиÑ
вÑÑажение=знаÑение1ORвÑÑажение=знаÑение2OR ...
ÐамеÑÑÑе, ÑÑо еÑли ÑезÑлÑÑаÑом вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñлева оказÑваеÑÑÑ NULL или ÑавнÑÑ
знаÑений ÑпÑава не наÑ
одиÑÑÑ, а Ñ
оÑÑ Ð±Ñ Ð¾Ð´Ð½Ð¾ из знаÑений ÑпÑава Ñавно NULL, конÑÑÑÑкÑÐ¸Ñ IN возвÑаÑÐ°ÐµÑ NULL, а не false. ÐÑо ÑооÑвеÑÑÑвÑÐµÑ Ð¿ÑинÑÑÑм в SQL пÑавилам ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
Ñо знаÑениÑми NULL.
9.24.2. NOT IN #
вÑÑажениеNOT IN (знаÑение[, ...])
СпÑава в ÑÐºÐ¾Ð±ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑваеÑÑÑ ÑпиÑок вÑÑажений. РезÑлÑÑаÑом бÑÐ´ÐµÑ Â«true», еÑли знаÑение левого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ Ñавно ни Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð· знаÑений вÑÑажений в пÑавой ÑаÑÑи. ÐÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑÑиÑаÑÑ ÐºÑаÑкой запиÑÑÑ ÑÑловиÑ
вÑÑажение<>знаÑение1ANDвÑÑажение<>знаÑение2AND ...
ÐамеÑÑÑе, ÑÑо еÑли ÑезÑлÑÑаÑом вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñлева оказÑваеÑÑÑ NULL или ÑавнÑÑ
знаÑений ÑпÑава не наÑ
одиÑÑÑ, а Ñ
оÑÑ Ð±Ñ Ð¾Ð´Ð½Ð¾ из знаÑений ÑпÑава Ñавно NULL, конÑÑÑÑкÑÐ¸Ñ NOT IN возвÑаÑÐ°ÐµÑ NULL, а не true, как можно бÑло Ð±Ñ Ð½Ð°Ð¸Ð²Ð½Ð¾ полагаÑÑ. ÐÑо ÑооÑвеÑÑÑвÑÐµÑ Ð¿ÑинÑÑÑм в SQL пÑавилам ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
Ñо знаÑениÑми NULL.
ÐодÑказка
ÐÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ x NOT IN y и NOT (x IN y) полноÑÑÑÑ ÑавнознаÑнÑ. УÑиÑÑваÑ, ÑÑо знаÑÐµÐ½Ð¸Ñ NULL могÑÑ Ð²Ð²ÐµÑÑи в заблÑждение наÑинаÑÑиÑ
ÑкоÑее в конÑÑÑÑкÑии NOT IN, Ñем в IN, лÑÑÑе ÑоÑмÑлиÑоваÑÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ Ñак, ÑÑÐ¾Ð±Ñ Ð² ниÑ
бÑло как можно менÑÑе оÑÑиÑаний.
9.24.3. ANY/SOME (Ñ Ð¼Ð°ÑÑивом) #
вÑÑажениеопеÑаÑоÑANY (вÑÑажение маÑÑива)вÑÑажениеопеÑаÑоÑSOME (вÑÑажение маÑÑива)
СпÑава в ÑкобкаÑ
запиÑÑваеÑÑÑ Ð²ÑÑажение, ÑезÑлÑÑаÑом коÑоÑого ÑвлÑеÑÑÑ Ð¼Ð°ÑÑив. ÐÑÑиÑленное знаÑение левого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑавниваеÑÑÑ Ñ ÐºÐ°Ð¶Ð´Ñм ÑлеменÑом ÑÑого маÑÑива Ñ Ð¿Ñименением заданного опеÑаÑоÑа ÑÑловиÑ, коÑоÑÑй должен вÑдаваÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкое знаÑение. РезÑлÑÑаÑом ANY бÑÐ´ÐµÑ Â«true», еÑли Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо ÑлеменÑа ÑÑловие иÑÑинно, и «false» в пÑоÑивном ÑлÑÑае (в Ñом ÑиÑле, и когда маÑÑив оказÑваеÑÑÑ Ð¿ÑÑÑÑм).
ÐÑли знаÑением маÑÑива оказÑваеÑÑÑ NULL, ÑезÑлÑÑаÑом ANY Ñакже бÑÐ´ÐµÑ NULL. ÐÑли NULL полÑÑен в левой ÑаÑÑи, ÑезÑлÑÑаÑом ANY обÑÑно Ñоже бÑÐ´ÐµÑ NULL (Ñ
оÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ Ð½ÐµÑÑÑогого ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑдаÑÑ Ð´ÑÑгой ÑезÑлÑÑаÑ). ÐÑоме Ñого, еÑли маÑÑив в пÑавой ÑаÑÑи ÑодеÑÐ¶Ð¸Ñ ÑлеменÑÑ NULL и ни c одним из ÑлеменÑов ÑÑловие не вÑполнÑеÑÑÑ, ÑезÑлÑÑаÑом ANY бÑÐ´ÐµÑ NULL, а не false (опÑÑÑ Ð¶Ðµ, еÑли иÑполÑзÑеÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ ÑÑÑогого ÑÑавнениÑ). ÐÑо ÑооÑвеÑÑÑвÑÐµÑ Ð¿ÑинÑÑÑм в SQL пÑавилам ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
Ñо знаÑениÑми NULL.
ÐлÑÑевое Ñлово SOME ÑвлÑеÑÑÑ Ñинонимом ANY.
9.24.4. ALL (Ñ Ð¼Ð°ÑÑивом) #
вÑÑажениеопеÑаÑоÑALL (вÑÑажение маÑÑива)
СпÑава в ÑкобкаÑ
запиÑÑваеÑÑÑ Ð²ÑÑажение, ÑезÑлÑÑаÑом коÑоÑого ÑвлÑеÑÑÑ Ð¼Ð°ÑÑив. ÐÑÑиÑленное знаÑение левого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑавниваеÑÑÑ Ñ ÐºÐ°Ð¶Ð´Ñм ÑлеменÑом ÑÑого маÑÑива Ñ Ð¿Ñименением заданного опеÑаÑоÑа ÑÑловиÑ, коÑоÑÑй должен вÑдаваÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкое знаÑение. РезÑлÑÑаÑом ALL бÑÐ´ÐµÑ Â«true», еÑли Ð´Ð»Ñ Ð²ÑеÑ
ÑлеменÑов ÑÑловие иÑÑинно (или маÑÑив не ÑодеÑÐ¶Ð¸Ñ ÑлеменÑов), и «false», еÑли наÑ
одÑÑÑÑ ÑÑÑоки, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
оно ложно.
ÐÑли знаÑением маÑÑива оказÑваеÑÑÑ NULL, ÑезÑлÑÑаÑом ALL Ñакже бÑÐ´ÐµÑ NULL. ÐÑли NULL полÑÑен в левой ÑаÑÑи, ÑезÑлÑÑаÑом ALL обÑÑно Ñоже бÑÐ´ÐµÑ NULL (Ñ
оÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ Ð½ÐµÑÑÑогого ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑдаÑÑ Ð´ÑÑгой ÑезÑлÑÑаÑ). ÐÑоме Ñого, еÑли маÑÑив в пÑавой ÑаÑÑи ÑодеÑÐ¶Ð¸Ñ ÑлеменÑÑ NULL и пÑи ÑÑом Ð½ÐµÑ ÑлеменÑов, Ñ ÐºÐ¾ÑоÑÑми ÑÑловие не вÑполнÑеÑÑÑ, ÑезÑлÑÑаÑом ALL бÑÐ´ÐµÑ NULL, а не true (опÑÑÑ Ð¶Ðµ, еÑли иÑполÑзÑеÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ ÑÑÑогого ÑÑавнениÑ). ÐÑо ÑооÑвеÑÑÑвÑÐµÑ Ð¿ÑинÑÑÑм в SQL пÑавилам ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
Ñо знаÑениÑми NULL.
9.24.5. СÑавнение конÑÑÑÑкÑоÑов ÑÑÑок #
конÑÑÑÑкÑоÑ_ÑÑÑокиопеÑаÑоÑконÑÑÑÑкÑоÑ_ÑÑÑоки
С обеиÑ
ÑÑоÑон пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ ÐºÐ¾Ð½ÑÑÑÑкÑоÑÑ ÑÑÑок (они опиÑÑваÑÑÑÑ Ð² ÐодÑазделе 4.2.13). ÐÑи ÑÑом даннÑе конÑÑÑÑкÑоÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑодеÑжаÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ðµ ÑиÑло полей. ÐаданнÑй опеÑаÑÐ¾Ñ Ð¿ÑименÑеÑÑÑ Ðº каждой паÑе ÑооÑвеÑÑÑвÑÑÑиÑ
полей. (ÐоÑколÑÐºÑ Ð¿Ð¾Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑазнÑÑ
Ñипов, Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ паÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑбÑан оÑделÑнÑй конкÑеÑнÑй опеÑаÑоÑ.) ÐÑе вÑбÑаннÑе опеÑаÑоÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ñленами некоÑоÑого клаÑÑа опеÑаÑоÑов B-деÑева или бÑÑÑ Ð¾Ð±ÑаÑнÑми ÑÐ»ÐµÐ½Ñ ÐºÐ»Ð°ÑÑа опеÑаÑоÑов B-деÑева =. СÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑÑÑÑкÑоÑов ÑÑÑок Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ñ Ð¾Ð¿ÐµÑаÑоÑом =, <>, <, <=, > или >=, или имеÑÑим аналогиÑнÑÑ ÑеманÑикÑ.
СÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ = и <> неÑколÑко оÑлиÑаÑÑÑÑ Ð¾Ñ Ð´ÑÑгиÑ
. С ÑÑими опеÑаÑоÑами две ÑÑÑоки ÑÑиÑаÑÑÑÑ ÑавнÑми, еÑли вÑе иÑ
ÑооÑвеÑÑÑвÑÑÑие Ð¿Ð¾Ð»Ñ Ð½Ðµ ÑÐ°Ð²Ð½Ñ NULL и ÑÐ°Ð²Ð½Ñ Ð¼ÐµÐ¶Ð´Ñ Ñобой, и неÑавнÑми, еÑли какие-либо ÑооÑвеÑÑÑвÑÑÑие иÑ
Ð¿Ð¾Ð»Ñ Ð½Ðµ NULL и не ÑÐ°Ð²Ð½Ñ Ð¼ÐµÐ¶Ð´Ñ Ñобой. РпÑоÑивном ÑлÑÑае ÑезÑлÑÑаÑом ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð½ÐµÐ¾Ð¿ÑеделÑнноÑÑÑ (NULL).
С опеÑаÑоÑами <, <=, > и >= ÑлеменÑÑ ÑÑÑок ÑÑавниваÑÑÑÑ Ñлева напÑаво до ÑеÑ
поÑ, пока не бÑÐ´ÐµÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð° паÑа неÑавнÑÑ
ÑлеменÑов или знаÑений NULL. ÐÑли лÑбÑм из ÑлеменÑов паÑÑ Ð¾ÐºÐ°Ð·ÑваеÑÑÑ NULL, ÑезÑлÑÑаÑом ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð½ÐµÐ¾Ð¿ÑеделÑнноÑÑÑ (NULL), в пÑоÑивном ÑлÑÑае ÑезÑлÑÑÐ°Ñ Ð²Ñего вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ ÑезÑлÑÑаÑом ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑÑиÑ
двÑÑ
ÑлеменÑов. ÐапÑимеÑ, ÑезÑлÑÑаÑом ROW(1,2,NULL) < ROW(1,3,0) бÑÐ´ÐµÑ true, а не NULL, Ñак как ÑÑеÑÑÑ Ð¿Ð°Ñа ÑлеменÑов не пÑинимаеÑÑÑ Ð² ÑаÑÑмоÑÑение.
конÑÑÑÑкÑоÑ_ÑÑÑокиIS DISTINCT FROMконÑÑÑÑкÑоÑ_ÑÑÑоки
ÐÑа конÑÑÑÑкÑÐ¸Ñ Ð¿Ð¾Ñ
ожа на ÑÑавнение ÑÑÑок Ñ Ð¾Ð¿ÐµÑаÑоÑом <>, но Ñо знаÑениÑми NULL она вÑдаÑÑ Ð½Ðµ NULL. ÐÑбое знаÑение NULL Ð´Ð»Ñ Ð½ÐµÑ ÑÑиÑаеÑÑÑ Ð½ÐµÑавнÑм (оÑлиÑнÑм оÑ) лÑÐ±Ð¾Ð¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð½Ðµ NULL, а два NULL ÑÑиÑаÑÑÑÑ ÑавнÑми (не ÑазлиÑнÑми). Таким обÑазом, ÑезÑлÑÑаÑом Ñакого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ true или false, но не NULL.
конÑÑÑÑкÑоÑ_ÑÑÑокиIS NOT DISTINCT FROMконÑÑÑÑкÑоÑ_ÑÑÑоки
ÐÑа конÑÑÑÑкÑÐ¸Ñ Ð¿Ð¾Ñ
ожа на ÑÑавнение ÑÑÑок Ñ Ð¾Ð¿ÐµÑаÑоÑом =, но Ñо знаÑениÑми NULL она вÑдаÑÑ Ð½Ðµ NULL. ÐÑбое знаÑение NULL Ð´Ð»Ñ Ð½ÐµÑ ÑÑиÑаеÑÑÑ Ð½ÐµÑавнÑм (оÑлиÑнÑм оÑ) лÑÐ±Ð¾Ð¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð½Ðµ NULL, а два NULL ÑÑиÑаÑÑÑÑ ÑавнÑми (не ÑазлиÑнÑми). Таким обÑазом, ÑезÑлÑÑаÑом Ñакого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñегда бÑÐ´ÐµÑ true или false, но не NULL.
9.24.6. СÑавнение ÑоÑÑавнÑÑ Ñипов #
запиÑÑопеÑаÑоÑзапиÑÑ
СÑандаÑÑ SQL ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð¿Ñи ÑÑавнении ÑÑÑок возвÑаÑалÑÑ NULL, еÑли ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð´Ð²ÑÑ Ð·Ð½Ð°Ñений NULL или знаÑÐµÐ½Ð¸Ñ NULL и не NULL. Postgres Pro вÑполнÑÐµÑ ÑÑо ÑÑебование ÑолÑко пÑи ÑÑавнении ÑÑÑок, ÑозданнÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑами (как опиÑано в ÐодÑазделе 9.24.5), или ÑÑÑоки, Ñозданной конÑÑÑÑкÑоÑом, Ñо ÑÑÑокой ÑезÑлÑÑаÑа подзапÑоÑа (как бÑло опиÑано в Разделе 9.23). РдÑÑÐ³Ð¸Ñ ÐºÐ¾Ð½ÑекÑÑÐ°Ñ Ð¿Ñи ÑÑавнении полей ÑоÑÑавнÑÑ Ñипов два знаÑÐµÐ½Ð¸Ñ NULL ÑÑиÑаÑÑÑÑ ÑавнÑми, а лÑбое знаÑение не NULL полагаеÑÑÑ Ð¼ÐµÐ½ÑÑим NULL. ÐÑо оÑклонение Ð¾Ñ Ð¿Ñавила Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ñенной ÑеализаÑии ÑоÑÑиÑовки и индекÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑоÑÑавнÑÑ Ñипов.
ÐоÑле вÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑоÑÐ¾Ð½Ñ Ð¾Ð½Ð¸ ÑÑавниваÑÑÑÑ Ð¿Ð¾ ÑÑÑокам. СÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑоÑÑавнÑÑ
Ñипов Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ñ Ð¾Ð¿ÐµÑаÑоÑом =, <>, <, <=, > или >=, либо дÑÑгим подобнÑм. (ТоÑнее, опеÑаÑоÑом ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑÑÑок Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»Ñбой опеÑаÑоÑ, вÑ
одÑÑий в клаÑÑ Ð¾Ð¿ÐµÑаÑоÑов B-деÑева, либо обÑаÑнÑй к опеÑаÑоÑÑ =, вÑ
одÑÑÐµÐ¼Ñ Ð² клаÑÑ Ð¾Ð¿ÐµÑаÑоÑов B-деÑева.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑÑепеÑеÑиÑленнÑе опеÑаÑоÑÑ Ð´ÐµÐ¹ÑÑвÑÑÑ Ñак же, как вÑÑажение IS [ NOT ] DISTINCT FROM Ð´Ð»Ñ ÐºÐ¾Ð½ÑÑÑÑкÑоÑов ÑÑÑок (Ñм. ÐодÑаздел 9.24.5).
ÐÐ»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑÑÑок Ñ ÑлеменÑами, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
не опÑеделÑн клаÑÑ Ð¾Ð¿ÐµÑаÑоÑов B-деÑева по ÑмолÑаниÑ, Ð²Ð²ÐµÐ´ÐµÐ½Ñ ÑледÑÑÑие опеÑаÑоÑÑ: *=, *<>, *<, *<=, *> и *>=. ÐÑи опеÑаÑоÑÑ ÑÑавниваÑÑ Ð²Ð½ÑÑÑеннее двоиÑное пÑедÑÑавление двÑÑ
ÑÑÑок. УÑÑиÑе, ÑÑо две ÑÑÑоки могÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑное двоиÑное пÑедÑÑавление, даже когда пÑи ÑÑавнении опеÑаÑоÑом ÑавенÑÑва ÑÑиÑаÑÑÑÑ ÑавнÑми. ÐоÑÑдок ÑÑÑок Ñ Ñакими опеÑаÑоÑами деÑеÑминиÑован, но не неÑÑÑ ÑмÑÑловой нагÑÑзки. ÐаннÑе опеÑаÑоÑÑ Ð½Ðµ пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð±ÑÑнÑÑ
запÑоÑов; они пÑименÑÑÑÑÑ Ð²Ð½ÑÑÑи ÑиÑÑÐµÐ¼Ñ Ð´Ð»Ñ Ð¼Ð°ÑеÑиализованнÑÑ
пÑедÑÑавлений и могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ Ð´Ð»Ñ Ð´ÑÑгиÑ
ÑпеÑиалÑнÑÑ
Ñелей, напÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ ÑепликаÑии или иÑклÑÑÐµÐ½Ð¸Ñ Ð´ÑбликаÑов в B-деÑеве (Ñм. ÐодÑаздел 64.4.3).