how do I wrap an sql quesry?
4 次查看(过去 30 天)
显示 更早的评论
Hi I have an SQL query that I wish to split over several lines. However, because the quesry needs to go inside quotes I have tried terminating each line with and closing quote and the three dots '...
This is giving a parsing error. Can someone help please
SELECT T1.TIME, MAX(CASE WHEN T2.ID = 1 THEN CAST(T1.VALUE AS FLOAT32) ELSE NULL END) AS VALUE1, MAX(CASE WHEN T2.ID = 2 THEN CAST(T1.VALUE AS FLOAT32) ELSE NULL END) AS VALUE2, MAX(CASE WHEN T2.ID = 3 THEN CAST(T1.VALUE AS FLOAT32) ELSE NULL END) AS VALUE3 FROM PIARCHIVE..PIINTERP2 T1 INNER JOIN (SELECT 1 ID, 'WWL_T1_WindSpeed_10MIN_AVG' TAG UNION SELECT 2 ID, 'WWL_T2_WindSpeed_10MIN_AVG' TAG UNION SELECT 3 ID, 'WWL_T3_WindSpeed_10MIN_AVG' TAG) T2 ON T2.TAG = T1.TAG WHERE T1.TAG IN ('WWL_T1_WindSpeed_10MIN_AVG', 'WWL_T2_WindSpeed_10MIN_AVG', 'WWL_T3_WindSpeed_10MIN_AVG') AND T1.TIME BETWEEN '*-7d' AND '*' AND TIMESTEP = '10m' GROUP BY T1.TIME ORDER BY T1.TIME
cheers dave
0 个评论
采纳的回答
the cyclist
2012-3-6
Here is my technique for wrapping SQL queries:
queryText = '';
queryText = [queryText,'select field from table ']; % Note the space at the end
queryText = [queryText,'where constraint is true '];
queryText = [queryText,'and another_constraint is true '];
queryText = [queryText,'order by field '];
This produces one long string with the whole query, but keep the different parts of the query manageable. It is also convenient for being able to paste the query into other software for checking.
Also, bear in mind that for the single quotes that appear inside the query, you will need to double those for MATLAB to parse it correctly. For example
queryText = ['select * from table where name=''the cyclist'' ']
0 个评论
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!