SQL Server приведен к текстовому типу данных - PullRequest
0 голосов
/ 20 июля 2010

Может ли кто-нибудь помочь мне с типом данных SQL Server от CAST до text? Я пытаюсь отобразить длинный текст с помощью функции CAST, но он не будет работать, если я получаю данные из более чем 1 таблицы. Возможно, я неправильно создал заявление.

$from = 'RealEstate AS RE, Models AS M, Catalogue AS C';

$select = 'CAST(RE.Details AS TEXT) AS RE.Details, RE.Postcode, RE.Suburb, 
    M.ModelName, M.ModelID, RE.HouseID, RE.ContactName, RE.ContactPhone, RE.PlanName, 
    RE.Address, RE.Street, RE.Price, RE.StreetNo, RE.CatID, RE.Fixed';


$query = mssql_query("SELECT DISTINCT $select 
                      FROM RealEstate AS RE, Models AS M 
                      WHERE RE.HouseID=$hid 
                      AND RE.ModelID=M.ModelID");

Ответы [ 3 ]

1 голос
/ 20 июля 2010

Насколько я понимаю, вы не можете объединять строки в блоке mssql_query - я не вижу необходимости в этом, основываясь на том, что вы предоставили.Если вы хотите объединить динамический оператор SQL, сделайте это так, прежде чем отправлять оператор в функцию mssql_query:

$select = 'SELECT DISTINCT CAST(re.details AS TEXT) as details,
                                         re.postcode,
                                         re.suburb,
                                         m.modelname,
                                         m.modelid,
                                         re.houseid,
                                         re.contactname,
                                         re.contactphone,
                                         re.planname,
                                         re.address,
                                         re.street,
                                         re.price,
                                         re.streetno,
                                         re.catid,
                                         re.fixed
                               FROM REALESTATE re
                               JOIN MODELS m ON m.modelid = re.modelid
                              WHERE re.houseid = $hid"
$query = mssql_query($select);
0 голосов
/ 20 июля 2010
$queryDetails = mssql_query("SELECT CAST(Details AS TEXT) AS Details FROM RealEstate WHERE HouseID=$hid");

Я сделал еще один запрос. Это, вероятно, избыточный вызов. Я больше знаком с mySQL, после использования msSQL я понимаю, что манипулировать им довольно сложно особенно когда функция LIMIT недоступна для нумерации страниц.

0 голосов
/ 20 июля 2010

Я почти уверен, что псевдонимы не могут содержать точку (нарушитель: RE.Details).Попробуйте вместо этого назвать его Details (или заключить псевдоним в кавычки (обратные метки для mysql), если вы хотите сохранить период, но я предполагаю, что вы этого не сделаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...