1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
expression.php
См. документацию.
1
<?php
8
9
namespace
Bitrix\Main\ORM\Query;
10
use Bitrix\Main\Application;
11
use Bitrix\Main\ORM\Fields\ExpressionField;
12
use Bitrix\Main\ORM\Query\Filter\ConditionTree;
13
use Bitrix\Main\Security\Random;
14
22
class
Expression
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
}
Bitrix\Main\Application\getConnection
static getConnection($name="")
Определения
application.php:638
Bitrix\Main\ORM\Fields\ExpressionField
Определения
expressionfield.php:25
Bitrix\Main\ORM\Query\Expression
Определения
expression.php:23
Bitrix\Main\ORM\Query\Expression\upper
upper($columnName)
Определения
expression.php:146
Bitrix\Main\ORM\Query\Expression\setAlias
setAlias(?string $alias)
Определения
expression.php:27
Bitrix\Main\ORM\Query\Expression\max
max($columnName)
Определения
expression.php:105
Bitrix\Main\ORM\Query\Expression\concat
concat()
Определения
expression.php:159
Bitrix\Main\ORM\Query\Expression\min
min($columnName)
Определения
expression.php:79
Bitrix\Main\ORM\Query\Expression\avg
avg($columnName)
Определения
expression.php:92
Bitrix\Main\ORM\Query\Expression\getTmpName
static getTmpName($postfix)
Определения
expression.php:184
Bitrix\Main\ORM\Query\Expression\$alias
$alias
Определения
expression.php:25
Bitrix\Main\ORM\Query\Expression\sum
sum($columnName)
Определения
expression.php:66
Bitrix\Main\ORM\Query\Expression\lower
lower($columnName)
Определения
expression.php:133
Bitrix\Main\ORM\Query\Expression\length
length($columnName)
Определения
expression.php:118
Bitrix\Main\ORM\Query\Expression\countDistinct
countDistinct($columnName)
Определения
expression.php:53
Bitrix\Main\ORM\Query\Expression\count
count($columnName)
Определения
expression.php:40
count
</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
bitrix
modules
main
lib
orm
query
expression.php
Создано системой
1.14.0