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

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

4
วิธีค้นหาระเบียนที่ซ้ำกันใน PostgreSQL
ฉันมีตารางฐานข้อมูล PostgreSQL ชื่อ "user_links" ซึ่งปัจจุบันอนุญาตให้มีฟิลด์ที่ซ้ำกันต่อไปนี้: year, user_id, sid, cid ข้อ จำกัด ที่ไม่ซ้ำกันในขณะนี้คือสนามแรกที่เรียกว่า "id" แต่ตอนนี้ฉันต้องการเพิ่มข้อ จำกัด เพื่อให้แน่ใจว่าyear, user_id, sidและcidทุกคนที่ไม่ซ้ำกัน แต่ฉันไม่สามารถใช้ข้อ จำกัด เพราะค่าที่ซ้ำกันอยู่แล้วที่ละเมิดข้อ จำกัด นี้ มีวิธีการค้นหารายการที่ซ้ำกันทั้งหมดหรือไม่

9
ฉันจะใส่ 'if clause' ในสตริง SQL ได้อย่างไร
ดังนั้นนี่คือสิ่งที่ฉันต้องการทำในฐานข้อมูลMySQLของฉัน ฉันอยากจะทำ: SELECT * FROM itemsOrdered WHERE purchaseOrder_ID = '@purchaseOrdered_ID' AND status = 'PENDING' หากที่จะไม่กลับแถวใด ๆ ซึ่งเป็นไปได้ผ่านif(dr.HasRows == false)ตอนนี้ฉันจะสร้างUPDATEในpurchaseOrderฐานข้อมูล: UPDATE purchaseOrder SET purchaseOrder_status = 'COMPLETED' WHERE purchaseOrder_ID = '@purchaseOrder_ID' ฉันจะทำให้กระบวนการนี้สั้นลงได้อย่างไร
190 mysql  sql 

20
ตั้งค่าฐานข้อมูลจากโหมดผู้ใช้เดี่ยวเป็นผู้ใช้หลายคน
ความต้องการความช่วยเหลือผมด้วยการตั้งค่าฐานข้อมูลที่ได้รับการบูรณะในโหมดSINGLE_USER MULTI_USERทุกครั้งที่ฉันวิ่ง ALTER DATABASE BARDABARD SET MULTI_USER; GO ฉันได้รับข้อผิดพลาดนี้: การเปลี่ยนแปลงสถานะหรือตัวเลือกของฐานข้อมูล 'BARDABARD' ไม่สามารถทำได้ในขณะนี้ ฐานข้อมูลอยู่ในโหมดผู้ใช้คนเดียวและผู้ใช้เชื่อมต่อกับมันในขณะนี้ ต้องอยู่ในSINGLE_USERโหมดที่ไม่ใช่เพื่อตั้งเป็นโหมดอื่น แต่ฉันไม่สามารถตั้งค่าฐานข้อมูลในโหมดอื่นใด ๆ ในขณะที่มันเป็นSINGLE_USERโหมด
189 sql  sql-server 

4
ลำดับการเข้าร่วมมีความสำคัญใน SQL หรือไม่
หากไม่คำนึงถึงประสิทธิภาพฉันจะได้รับผลลัพธ์เดียวกันจากข้อความค้นหา A และ B ด้านล่างหรือไม่ แล้ว C และ D ล่ะ? -- A select * from a left join b on <blahblah> left join c on <blahblan> -- B select * from a left join c on <blahblah> left join b on <blahblan> -- C select * from a join b …


9
เปลี่ยนความยาวสูงสุดของคอลัมน์ varchar หรือไม่
ฉันพยายามอัปเดตความยาวของคอลัมน์ varchar จาก 255 ตัวอักษรเป็น 500 โดยไม่สูญเสียเนื้อหา ก่อนหน้านี้ฉันทำดร็อปและสร้างตารางใหม่ แต่ฉันไม่เคยเห็นคำสั่งเปลี่ยนแปลงซึ่งเป็นสิ่งที่ฉันเชื่อว่าฉันต้องใช้เพื่อทำสิ่งนี้ ฉันพบเอกสารที่นี่: ALTER TABLE (Transfact-SQL)แต่ฉันไม่สามารถทำหัวหรือก้อยได้ ฉันมีดังต่อไปนี้ (เป็นหลักไม่มีอะไรน่าเสียดาย): alter table [progennet_dev].PROGEN.LE alter column UR_VALUE_3 ฉันจะเข้าใกล้สิ่งนี้ได้อย่างไร มีเอกสารที่ดีกว่าสำหรับคำสั่งนี้หรือไม่ (ฉันได้ค้นหาคำสั่งตัวอย่างบางส่วน แต่ว่างเปล่า)

10
แปลงเวลาเป็นวันที่ในแบบสอบถาม MySQL
ฉันต้องการแปลง a timestampใน MySQL เป็นวันที่ ผมอยากจะจัดรูปแบบข้อมูล user.registration yyyy-mm-ddลงในแฟ้มข้อความเป็น นี่คือ SQL ของฉัน: $sql = requestSQL("SELECT user.email, info.name, FROM_UNIXTIME(user.registration), info.news FROM user, info WHERE user.id = info.id ", "export members"); ฉันลองแปลงวันที่ด้วย: DATE_FORMAT(user.registration, '%d/%m/%Y') DATE(user.registration) ฉันสะท้อนผลลัพธ์ก่อนที่จะเขียนไฟล์ข้อความและฉันได้รับ: อีเมล 1; ชื่อ 1; DATE_FORMAT (ผู้ใช้การลงทะเบียน, '% d /% m /% Y'); news1 อีเมล 2; name2; news2 …

12
MySQL - แถวไปยังคอลัมน์
ฉันพยายามค้นหาโพสต์ แต่ฉันพบวิธีแก้ปัญหาสำหรับ SQL Server / Access เท่านั้น ฉันต้องการโซลูชันใน MySQL (5.X) ฉันมีตาราง (เรียกว่าประวัติ) ที่มี 3 คอลัมน์: hostid, itemname, itemvalue ถ้าฉันเลือก ( select * from history) มันจะกลับมา +--------+----------+-----------+ | hostid | itemname | itemvalue | +--------+----------+-----------+ | 1 | A | 10 | +--------+----------+-----------+ | 1 | B | 3 | +--------+----------+-----------+ …
188 mysql  sql  pivot-table  etl  crosstab 

4
วิธีเปรียบเทียบวันที่ในฟิลด์วันที่และเวลาใน Postgresql
ฉันเผชิญสถานการณ์แปลก ๆ เมื่อเปรียบเทียบระหว่างวันที่ใน postgresql (รุ่น 9.2.4 ใน windows) ฉันมีคอลัมน์ในตารางของฉันบอกว่า update_date ด้วยประเภท 'การประทับเวลาที่ไม่มีเขตเวลา' ลูกค้าสามารถค้นหาในฟิลด์นี้ด้วยวันที่เท่านั้น (เช่น: 2013-05-03) หรือวันที่พร้อมเวลา (เช่น: 2013-05-03 12:20:00) คอลัมน์นี้มีค่าเป็นประทับเวลาสำหรับแถวทั้งหมดในปัจจุบันและมีส่วนวันที่เดียวกัน (2013-05-03) แต่มีความแตกต่างในส่วนของเวลา เมื่อฉันเปรียบเทียบคอลัมน์นี้ฉันได้รับผลลัพธ์ที่แตกต่างกัน ชอบดังต่อไปนี้: select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-03' -> No results select * from table where update_date >= '2013-05-03' AND update_date < …
188 sql  database  postgresql  date 

4
วิธีการเปลี่ยนการเรียงหน้าเริ่มต้นของตาราง?
create table check2(f1 varchar(20),f2 varchar(20)); สร้างตารางที่มีการเปรียบเทียบค่าเริ่มต้นlatin1_general_ci; alter table check2 collate latin1_general_cs; show full columns from check2; แสดงการเรียงคอลัมน์แต่ละคอลัมน์เป็น 'latin1_general_ci' ถ้าอย่างนั้นผลของคำสั่งเปลี่ยนแปลงตารางคืออะไร?
187 mysql  sql  collation 


5
mysql :: แทรกลงในตารางข้อมูลจากตารางอื่น?
ฉันสงสัยว่ามีวิธีการทำเช่นนี้อย่างหมดจดใน sql: q1 = SELECT campaign_id, from_number, received_msg, date_received FROM `received_txts` WHERE `campaign_id` = '8'; INSERT INTO action_2_members (campaign_id, mobile, vote, vote_date) VALUES(q1.campaign_id, q1.from_number, q1.received_msg, q1.date_received); หมายเหตุ: q1 จะส่งคืนแถวประมาณ 30k มีวิธีที่จะทำสิ่งที่ฉันพยายามข้างต้นใน sql ตรง? หากต้องการดึงข้อมูลโดยตรงจากตารางหนึ่ง (โดยทั่วไปเป็นตารางข้อมูลดิบ) และแทรกลงในอีกตารางหนึ่ง (โดยทั่วไปเป็นตารางข้อมูลที่ประมวลผลแล้ว)
187 sql  mysql 

20
ฐานข้อมูลก่อให้เกิดความชั่วร้ายหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฐานข้อมูลก่อให้เกิดความคิดที่ไม่ดีหรือไม่? จากประสบการณ์ของฉันพวกเขาชั่วร้ายเพราะพวกเขาสามารถทำให้เกิดผลข้างเคียงที่น่าแปลกใจและยากที่จะแก้ปัญหา บ่อยครั้งที่นักพัฒนาไม่คิดแม้แต่จะมองว่ามีสิ่งกระตุ้นหรือไม่ ในทางกลับกันดูเหมือนว่าถ้าคุณมีตรรกะที่ต้องเกิดขึ้นในช่วงเวลาหนึ่งFOOจะถูกสร้างขึ้นใหม่ในฐานข้อมูลแล้วสถานที่ที่เข้าใจผิดได้มากที่สุดที่จะวางมันเป็นทริกเกอร์แทรกในตาราง FOO ModifiedDateโดยเฉพาะเวลาที่เรากำลังใช้ทริกเกอร์สำหรับสิ่งที่ง่ายจริงๆเช่นการตั้งค่า
186 sql  triggers 

9
เป็นไปได้ไหมที่จะเลือก EXISTS เป็นบิตโดยตรง
ฉันสงสัยว่าเป็นไปได้ไหมที่จะทำสิ่งนี้ (ซึ่งไม่ได้ผล): select cast( (exists(select * from theTable where theColumn like 'theValue%') as bit) ดูเหมือนว่ามันควรจะเป็นไปได้ แต่สิ่งต่าง ๆ ที่ควรจะทำงานใน SQL ไม่ได้;) ฉันเคยเห็นวิธีแก้ปัญหาสำหรับเรื่องนี้ (เลือก 1 ที่ ... มีอยู่ ... ) แต่ดูเหมือนว่าฉันควรจะสามารถทำได้ ส่งผลของฟังก์ชั่นที่มีอยู่เป็นบิตและทำได้ด้วย
186 sql  sql-server  tsql 

11
นำเข้าไฟล์ CSV ลงใน SQL Server
ฉันต้องการความช่วยเหลือในการนำเข้า.csvไฟล์ไปยัง SQL Server โดยใช้BULK INSERTและฉันมีคำถามพื้นฐานเล็กน้อย ปัญหาที่พบ: ข้อมูลไฟล์ CSV อาจมี,(เครื่องหมายจุลภาค) อยู่ระหว่าง (ตัวอย่าง: คำอธิบาย) ดังนั้นฉันจะนำเข้าจัดการข้อมูลเหล่านี้ได้อย่างไร หากลูกค้าสร้าง CSV จาก Excel ข้อมูลที่มีเครื่องหมายจุลภาคจะถูกปิดล้อมอยู่ภายใน""(เครื่องหมายคำพูดคู่) [ดังตัวอย่างด้านล่าง] ดังนั้นการนำเข้าสามารถจัดการกับสิ่งนี้ได้อย่างไร เราจะติดตามได้อย่างไรหากบางแถวมีข้อมูลไม่ดีซึ่งนำเข้าข้าม (นำเข้าข้ามแถวที่ไม่สามารถนำเข้าได้) นี่คือตัวอย่าง CSV ที่มีส่วนหัว: Name,Class,Subject,ExamDate,Mark,Description Prabhat,4,Math,2/10/2013,25,Test data for prabhat. Murari,5,Science,2/11/2013,24,"Test data for his's test, where we can test 2nd ROW, Test." sanjay,4,Science,,25,Test Only. และคำสั่ง SQL ที่จะนำเข้า: BULK INSERT SchoolsTemp …
186 sql  sql-server  csv  bulkinsert  bulk 

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