0

在使用查询生成器时,我在 Mssql 2008 和 Yii Framework 中遇到了一些问题,括号放置不正确。

$queryCommand = Yii::app()->db->createCommand();
$selectArray = array();
$selectArray[] = 't.id';
$selectArray[] = "CASE t.description  WHEN '' THEN t.name ELSE t.name + ' : ' + t.description END AS text";
$queryCommand->select($selectArray);
$queryCommand->from("table t");

我得到一个奇怪的查询字符串。

SELECT [t].[id], [CASE] AS [t].[description  WHEN '' THEN t].[name ELSE t].[name + ' : ' + t].[description END AS text]
FROM [table] [t]

有没有更好的方法来做这个案子?

如果我向 t.description 添加 SUBSTRING 函数,则不会添加括号。

$queryCommand = Yii::app()->db->createCommand();
$selectArray = array();
$selectArray[] = 't.id';
$selectArray[] = "CASE t.description  WHEN '' THEN t.name ELSE t.name + ' : ' + SUBSTRING(t.description,0,30) END AS text";
$queryCommand->select($selectArray);
$queryCommand->from("table t");

我明白了

SELECT [t].[id], CASE t.description WHEN '' THEN t.name ELSE t.name + ' : ' +    SUBSTRING(t.description,0,30) END AS text
FROM [table] [t]
4

0 回答 0