คำถามติดแท็ก sql

Structured Query Language (SQL) เป็นภาษาสำหรับการสืบค้นฐานข้อมูล คำถามควรมีตัวอย่างรหัสโครงสร้างตารางข้อมูลตัวอย่างและแท็กสำหรับการใช้งาน DBMS (เช่น MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 และอื่น ๆ ) หากคำถามของคุณเกี่ยวข้องกับ DBMS เฉพาะ (ใช้ส่วนขยาย / คุณลักษณะเฉพาะ) ให้ใช้แท็กของ DBMS นั้นแทน คำตอบของคำถามที่ติดแท็กด้วย SQL ควรใช้ SQL มาตรฐาน ISO / IEC

13
SQL Server - คืนค่าหลัง INSERT
ฉันพยายามรับคีย์ - ค่ากลับมาหลังจากคำสั่ง INSERT ตัวอย่าง: ฉันมีตารางพร้อมชื่อแอตทริบิวต์และรหัส id เป็นค่าที่สร้างขึ้น INSERT INTO table (name) VALUES('bob'); ตอนนี้ฉันต้องการรับรหัสกลับมาในขั้นตอนเดียวกัน มันจะทำอย่างไร เรากำลังใช้ Microsoft SQL Server 2008

9
วิธีรับจำนวนการนับด้วยแบบสอบถาม SQL หนึ่งรายการ
ฉันสงสัยว่าจะเขียนคำค้นหานี้อย่างไร ฉันรู้ว่าไวยากรณ์ที่แท้จริงนี้เป็นของปลอม แต่มันจะช่วยให้คุณเข้าใจสิ่งที่ฉันต้องการ ฉันต้องการมันในรูปแบบนี้เพราะมันเป็นส่วนหนึ่งของแบบสอบถามที่ใหญ่กว่ามาก SELECT distributor_id, COUNT(*) AS TOTAL, COUNT(*) WHERE level = 'exec', COUNT(*) WHERE level = 'personal' ฉันต้องการสิ่งนี้ทั้งหมดกลับมาในแบบสอบถามเดียว นอกจากนี้ต้องอยู่ในแถวเดียวดังนั้นสิ่งต่อไปนี้จะไม่ทำงาน: 'SELECT distributor_id, COUNT(*) GROUP BY distributor_id'
316 mysql  sql  join  count  group-by 

22
MySQL ไม่สามารถเพิ่มข้อ จำกัด ต่างประเทศ
ดังนั้นฉันจึงพยายามเพิ่มข้อ จำกัด Foreign Key ลงในฐานข้อมูลของฉันเป็นข้อกำหนดของโครงการและทำงานเป็นครั้งแรกหรือสองครั้งในตารางที่แตกต่างกัน แต่ฉันมีสองตารางที่ฉันได้รับข้อผิดพลาดเมื่อพยายามเพิ่มข้อ จำกัด Foreign Key ข้อความแสดงข้อผิดพลาดที่ฉันได้รับคือ: ข้อผิดพลาด 1215 (HY000): ไม่สามารถเพิ่มข้อ จำกัด กุญแจต่างประเทศ นี่คือ SQL ฉันใช้ในการสร้างตารางทั้งสองตารางที่กระทำผิดมีและPatientAppointment SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=1; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; CREATE SCHEMA IF NOT EXISTS `doctorsoffice` DEFAULT CHARACTER SET utf8 ; USE `doctorsoffice` ; -- ----------------------------------------------------- -- Table `doctorsoffice`.`doctor` -- ----------------------------------------------------- DROP …
314 mysql  sql  foreign-keys 

8
SQL - ค้นหาระเบียนจากตารางหนึ่งซึ่งไม่มีอยู่ในอีกตารางหนึ่ง
ฉันมีตาราง SQL สองตารางต่อไปนี้ (ใน MySQL): Phone_book +----+------+--------------+ | id | name | phone_number | +----+------+--------------+ | 1 | John | 111111111111 | +----+------+--------------+ | 2 | Jane | 222222222222 | +----+------+--------------+ Call +----+------+--------------+ | id | date | phone_number | +----+------+--------------+ | 1 | 0945 | 111111111111 | +----+------+--------------+ | …
310 sql  mysql 

26
มีความแตกต่างระหว่าง GROUP BY และ DISTINCT หรือไม่
ฉันเรียนรู้บางอย่างเกี่ยวกับ SQL ในวันอื่น ๆ : SELECT c FROM myTbl GROUP BY C มีผลลัพธ์เช่นเดียวกับ: SELECT DISTINCT C FROM myTbl สิ่งที่ฉันอยากรู้มีอะไรแตกต่างกันในวิธีที่โปรแกรมเอ็นจิน SQL ประมวลผลคำสั่งหรือสิ่งนั้นเป็นสิ่งเดียวกันจริง ๆ หรือไม่? ฉันชอบไวยากรณ์ที่แตกต่างโดยส่วนตัว แต่ฉันแน่ใจว่ามันเป็นนิสัยมากกว่าสิ่งอื่นใด แก้ไข: นี่ไม่ใช่คำถามเกี่ยวกับมวลรวม การใช้GROUP BYฟังก์ชั่นรวมกับเป็นที่เข้าใจกัน
310 sql  group-by  distinct 

9
วิธีแทรกค่าที่มีเครื่องหมายอัญประกาศเดี่ยว (อัญประกาศเดี่ยว) ได้อย่างไร
ไวยากรณ์ SQL ที่ถูกต้องในการแทรกค่าด้วยเครื่องหมายอัญประกาศเดี่ยวนั้นคืออะไร? Insert into Person (First, Last) Values 'Joe', 'O'Brien' ฉันได้รับข้อผิดพลาดอย่างต่อเนื่องเนื่องจากฉันคิดว่าเครื่องหมายอัญประกาศเดี่ยวหลังจาก O เป็นแท็กสิ้นสุดสำหรับค่า

15
เลือก n สุ่มแถวจากตาราง SQL Server
ฉันมีตาราง SQL Server ที่มีแถวประมาณ 50,000 แถว ฉันต้องการเลือกแถวประมาณ 5,000 แถวโดยการสุ่ม ฉันคิดว่าวิธีที่ซับซ้อนการสร้างตาราง temp ด้วยคอลัมน์ "หมายเลขสุ่ม" คัดลอกตารางของฉันลงในนั้นวนลูปผ่านตาราง temp และอัปเดตแต่ละแถวด้วยRAND()แล้วเลือกจากตารางนั้นซึ่งคอลัมน์สุ่มหมายเลข < 0.1 ฉันกำลังมองหาวิธีที่ง่ายกว่าที่จะทำในงบเดียวถ้าเป็นไปได้ บทความนี้แนะนำให้ใช้NEWID()ฟังก์ชั่น ดูเหมือนว่าจะมีแนวโน้ม แต่ฉันไม่สามารถเห็นได้ว่าฉันจะเลือกเปอร์เซ็นต์ของแถวได้อย่างไร มีใครเคยทำเช่นนี้มาก่อนหรือไม่ ความคิดใด ๆ
309 sql  sql-server  random 

6
Dynamic SELECT TOP @var ใน SQL Server
ฉันจะให้ตัวแปรแบบไดนามิกตั้งค่าจำนวนแถวที่จะส่งคืนใน SQL Server ได้อย่างไร ด้านล่างนี้เป็นไวยากรณ์ที่ไม่ถูกต้องใน SQL Server 2005+: DECLARE @count int SET @count = 20 SELECT TOP @count * FROM SomeTable

29
ฉันจะเลือกวันแรกของเดือนใน SQL ได้อย่างไร
ฉันแค่ต้องเลือกวันแรกของเดือนของตัวแปร datetime ที่กำหนด ฉันรู้ว่ามันง่ายที่จะใช้รหัสประเภทนี้: select CAST(CAST(YEAR(@mydate) AS VARCHAR(4)) + '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME) แต่นี่ไม่ได้สวยงามมากและอาจไม่เร็วนักเช่นกัน มีวิธีที่ดีกว่าในการทำเช่นนี้? ฉันใช้ SQL Server 2008

7
สตริงแบบสอบถาม MySQL มี
ฉันพยายามหาวิธีที่ฉันสามารถสร้างแบบสอบถามด้วย MySQL ที่ตรวจสอบว่าค่า (สตริง$haystack) ในคอลัมน์หนึ่งมีข้อมูลบางอย่าง (สตริง$needle) เช่นนี้หรือไม่: mysql_query(" SELECT * FROM `table` WHERE `column`.contains('{$needle}') "); ใน PHP เรียกใช้ฟังก์ชันsubstr($haystack, $needle)ดังนั้นอาจจะ: WHERE substr(`column`, '{$needle}')=1


17
รับชื่อตารางทั้งหมดของฐานข้อมูลเฉพาะโดยแบบสอบถาม SQL?
ฉันกำลังทำงานกับแอพพลิเคชั่นซึ่งสามารถจัดการกับเซิร์ฟเวอร์ฐานข้อมูลหลายตัวเช่น "MySQL" และ "MS SQL Server" ฉันต้องการรับชื่อตารางของฐานข้อมูลเฉพาะโดยใช้แบบสอบถามทั่วไปซึ่งควรเหมาะกับฐานข้อมูลทุกประเภท ฉันได้ลองทำดังนี้ SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' แต่จะให้ชื่อตารางของฐานข้อมูลทั้งหมดของเซิร์ฟเวอร์เฉพาะ แต่ฉันต้องการรับชื่อตารางของฐานข้อมูลที่เลือกเท่านั้น ฉันจะ จำกัด คิวรีนี้เพื่อรับตารางของฐานข้อมูลเฉพาะได้อย่างไร
304 sql  sql-server 


21
แบบสอบถาม SQL เพื่อเลือกวันที่ระหว่างวันที่สองวัน
ฉันมีและstart_date end_dateฉันต้องการรับรายการวันที่ระหว่างสองวันนี้ ทุกคนสามารถช่วยชี้ความผิดพลาดในแบบสอบถามได้ไหม select Date,TotalAllowance from Calculation where EmployeeId=1 and Date between 2011/02/25 and 2011/02/27 นี่Dateคือdatetimeตัวแปร


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.