1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
expression.php
См. документацию.
1<?php
8
9namespace Bitrix\Main\ORM\Query;
10use Bitrix\Main\Application;
11use Bitrix\Main\ORM\Fields\ExpressionField;
12use Bitrix\Main\ORM\Query\Filter\ConditionTree;
13use Bitrix\Main\Security\Random;
14
23{
25 public $alias;
26
27 public function setAlias(?string $alias): static
28 {
29 $this->alias = $alias;
30 return $this;
31 }
32
40 public function count($columnName)
41 {
42 $alias = $this->alias ?: static::getTmpName('COUNT');
43 return new ExpressionField($alias, 'COUNT(%s)', $columnName);
44 }
45
53 public function countDistinct($columnName)
54 {
55 $alias = $this->alias ?: static::getTmpName('COUNT_DISTINCT');
56 return new ExpressionField($alias, 'COUNT(DISTINCT %s)', $columnName);
57 }
58
66 public function sum($columnName)
67 {
68 $alias = $this->alias ?: static::getTmpName('SUM');
69 return new ExpressionField($alias, 'SUM(%s)', $columnName);
70 }
71
79 public function min($columnName)
80 {
81 $alias = $this->alias ?: static::getTmpName('MIN');
82 return new ExpressionField($alias, 'MIN(%s)', $columnName);
83 }
84
92 public function avg($columnName)
93 {
94 $alias = $this->alias ?: static::getTmpName('AVG');
95 return new ExpressionField($alias, 'AVG(%s)', $columnName);
96 }
97
105 public function max($columnName)
106 {
107 $alias = $this->alias ?: static::getTmpName('MAX');
108 return new ExpressionField($alias, 'MAX(%s)', $columnName);
109 }
110
118 public function length($columnName)
119 {
120 $helper = Application::getConnection()->getSqlHelper();
121 $alias = $this->alias ?: static::getTmpName('LENGTH');
122
123 return new ExpressionField($alias, $helper->getLengthFunction('%s'), $columnName);
124 }
125
133 public function lower($columnName)
134 {
135 $alias = $this->alias ?: static::getTmpName('LOWER');
136 return new ExpressionField($alias, 'LOWER(%s)', $columnName);
137 }
138
146 public function upper($columnName)
147 {
148 $alias = $this->alias ?: static::getTmpName('UPPER');
149 return new ExpressionField($alias, 'UPPER(%s)', $columnName);
150 }
151
159 public function concat()
160 {
161 $helper = Application::getConnection()->getSqlHelper();
162 $columns = func_get_args();
163 $alias = $this->alias ?: static::getTmpName('CONCAT');
164
165 // get ... format as well as single array
166 if (count($columns) == 1 && is_array($columns[0]))
167 {
168 $columns = $columns[0];
169 }
170
171 $holders = array_fill(0, count($columns), '%s');
172 $expr = call_user_func_array([$helper, 'getConcatFunction'], $holders);
173
174 return new ExpressionField($alias, $expr, $columns);
175 }
176
184 public static function getTmpName($postfix)
185 {
186 return 'A'.strtoupper(Random::getString(6).'_'.$postfix);
187 }
188}
static getConnection($name="")
Определения application.php:638
upper($columnName)
Определения expression.php:146
setAlias(?string $alias)
Определения expression.php:27
max($columnName)
Определения expression.php:105
min($columnName)
Определения expression.php:79
avg($columnName)
Определения expression.php:92
static getTmpName($postfix)
Определения expression.php:184
sum($columnName)
Определения expression.php:66
lower($columnName)
Определения expression.php:133
length($columnName)
Определения expression.php:118
countDistinct($columnName)
Определения expression.php:53
count($columnName)
Определения expression.php:40
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936