[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 sent to your email.