日期:2014-05-17  浏览次数:20699 次

SQL中的方括号怎么用?
本帖最后由 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

------其他解决方案--------------------
引用:
SQL code?



1234

SELECT [N]       ,[VAL]   FROM [SQLTips].[dbo].[A]

用双层方括号有什么用呢?

------其他解决方案--------------------
引用:
绝大部分语言都存在关键字、保留字,这些如果不用[]来包住的话,不一定报错,但是很容易报错。

这个知道的,我不知道双层有什么用?

------其他解决方案--------------------
你这个最好到C#去问。sql里面单括号就可以了
------其他解决方案--------------------
小弟见识短浅,两个就不知道了
------其他解决方案--------------------
两个我也不知道,sql里表达啥意思,没见过
------其他解决方案--------------------
查询时候可以写正则表达式的对吧!
------其他解决方案--------------------
引用:
你这个最好到C#去问。sql里面单括号就可以了