2010-05-25 20 views

cevap

11

MySQL için, 'keneylerini kullanın. Örneğin

: MS SQL için

SELECT `column`, `column2` FROM `table` 
15

kullanmak, [ve]

SELECT [COLUMN], [COLUMN 2] FROM [TABLE] 
+1

Eğer ms sql ile sütun adlarında boşluk olabilir!?! –

+2

yapabilirsiniz! Yine de yapmam. – JMP

+1

Evet, MSSQL'deki boşluk adları olarak boşluk veya ayrılmış sözcükler olabilir. Sadece onlara ihtiyacın var. – BoltBait

64

SQL-99 çift tırnak (") tanımlayıcıları sınırlandırmak için kullanılan standart specifies

. Oracle, PostgreSQL, MySQL, MSSQL ve SQlite, "tanımlayıcı sınırlayıcısı" (varsayılan olarak "kullanmasalar bile") destekliyorlar - örneğin, MySQL'i 012'de çalıştırıyor olmalısınız QUOTED_IDENTIFIERON olduğundave SQL Server yalnızca onu desteklemektedir.) SQLite göre

49

,

  • 'foo' bir SQL tanıtıcı (sütun/tablo/vs)
  • bir SQL dizesi
  • "foo" olduğu [foo], MS SQL
  • `foo` tanımlayıcısında bir tanımlayıcıdır MySQL
  • nitelikli adlar için

, sözdizimi: "t"."foo" veya [t].[foo] vb

MySQL ANSI_QUOTES seçeneği etkinleştirildiğinde, standart "foo" destekler.

+3

Not: SQLite, bağlamın bir dizeye izin vermemesi durumunda bir '' foo '' '' 'tanımlayıcı olarak yorumlanabileceğini ve bağlamın bir tanımlayıcı olmasına izin verilmediyse' 'foo' '' nin bir dize olarak yorumlanmasına izin verdiğini unutmayın. bu davranışın gelecekteki sürümlerde kaldırılabileceğinin bir notudur. – thomasrutter

+0

Peki, nasıl "t" yaparsınız. *? – Loenix

+1

@thomasrutter Evet, bu davranıştan tamamen ısırıldım… "WHERE" nonexistent_column "= 0" ve sqlite kullanılmaya çalışıldığında, "nonexistent_column" 'un bir dizge olduğunu sanıyorum. İsmi tamamen "my_table" olarak nitelemek. "Nonexistent_column", sqliti daha katı davranmaya zorlar. – Rufflewind

1
DBASE/DBF kullanım [ için

ve ]

SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE] 
İlgili konular