在使用查询生成器时,我在 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]