本帖最后由 xulonghua1988219 于 2012-11-15 16:13:11 编辑 SELECT distinct [[shipment_requests.*]],[[shippingaddress.*]],[[billingaddress.*]],[[orders.*]],[[rep_infos.*]],[[warehouses.*]]
FROM warehouses INNER JOIN
(select top {2} * from shipment_requests where warehouse_id={0} and shipment_requests.status_code='{1}') shipment_requests ON warehouses.id = shipment_requests.warehouse_id INNER JOIN
shipment_request_line_items ON shipment_requests.id = shipment_request_line_items.shipment_request_id LEFT JOIN
comments ON shipment_requests.id=comments.shipment_request_id LEFT JOIN
orders ON shipment_requests.order_id = orders.id LEFT JOIN
order_line_items ON orders.id=order_line_items.order_id INNER JOIN
rep_infos ON shipment_requests.rep_info_id=rep_infos.id INNER JOIN
addresses shippingaddress ON shipment_requests.shipping_address_id = shippingaddress.id INNER JOIN
addresses billingaddress ON shipment_requests.billing_address_id = billingaddress.id
1、这里为什么用两层方括号?
2、我在一个C#程序里面读这个SQL语句,单步跟踪后,发现[...]变成了{...}这又是为什么?
3、(select top {2} * from shipment_requests where warehouse_id={0} and shipment_requests.status_code='{1}') shipment_requests 这里面shipment_requests 这块一直报错,是不是因为shipment_requests是表名了,所以不能再用这个名称了?
------最佳解决方案--------------------
[]用过,{}没有过
------其他解决方案--------------------
绝大部分语言都存在关键字、保留字,这些如果不用[]来包住的话,不一定报错,但是很容易报错。
------其他解决方案--------------------
终于明白了,hibernate内部还会有替换。
------其他解决方案--------------------
SELECT [N]
,[VAL]
FROM [SQLTips].[dbo].[A]
------其他解决方案--------------------
重命名的时候也可以用
比如:SELECT SNO [重命名] FROM tableName
------其他解决方案--------------------
用双层方括号有什么用呢?
------其他解决方案--------------------
这个知道的,我不知道双层有什么用?
------其他解决方案--------------------
你这个最好到C#去问。sql里面单括号就可以了
------其他解决方案--------------------
小弟见识短浅,两个就不知道了
------其他解决方案--------------------
两个我也不知道,sql里表达啥意思,没见过
------其他解决方案--------------------
查询时候可以写正则表达式的对吧!
------其他解决方案--------------------