[SQL Server] SELECT * From Table where 1 > 2

เวลาทำงานหลายคนอาจจะเจอ SQL แปลก เช่น

SELECT * FROM INVESTTX WHERE 1 > 2

Q: WHERE 1 > 2 คือ อะไร ?
A: คือ การ SELECT ข้อมูล RECORD เปล่าขึ้นมา เพื่ออัปเดต หรือ ทำเป็น TEMP Table เพื่อการใช้งานต่อไป

ตัวอย่างการใช้งาน

  • SELECT RECORD เปล่าขึ้นมา Update Recordset ใน VB6
    Private Function AddDataRecord() As Boolean
    Dim SQL As String, ladr As ADODB.RecorDset
    On Error GoTo LineError
    	'Create empty recordset for add data record
        SQL = "SELECT * FROM PRODUCT WHERE 1 > 2"
        Set ladr = New ADODB.RecorDset
        ladr.Open SQL, gclsDBConnect.Connection, adOpenKeyset, adLockPessimistic
    	'Add Data Record
        With ladr
            .AddNew
            .Fields("PROD_ID").Value = 002
            .Fields("PROD_NAME").Value = "DS_PHOTOSHOP Management Software"
            .Fields("PROD_PRICE").Value = 399
            .Fields("PROD_QTY").Value = 99
            .Update
        End With
        AddDataRecord = True
    LineExit:
        Set ladr = Nothing
        Exit Function
    LineError:
        MsgBox Err.Number & ":" & Err.Description & newline & "in " & Err.Source, vbInformation + vbOKOnly
        AddDataRecord = False
        Resume LineExit
    End Function
  • .ใช้สร้าง Table ขึ้นมาใหม่ เช่น
    SELECT * INTO Sales.NewCurrency
    FROM Sales.Currency
    WHERE 1 > 2 
    --(0 row(s) affected)
    /* คำสั่งที่เทียบเท่า
    CREATE TABLE [Sales].[NewCurrency](
          [CurrencyCode] [nchar](3) NOT NULL,
          [Name] [dbo].[Name] NOT NULL,
          [ModifiedDate] [datetime] NOT NULL
    ) ON [PRIMARY]
    */

Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.